Author: Kurt Siegl

# COW Reference Manual

                               T H E
                    _____      _____     _   _   _
                   / ____\    / ___ \    ||  ||  ||
                   | |        | | | |    \\  /\  //
                   | |___     | |_| |     \\//\\//
                   \_____/ o  \_____/ o    \/  \/ o

                    R E F E R E N C E  M A N U A L

    COW Written by: Chris Guthrie, Ed James, Scott Silvey, and Kevin Smith,
                    Tedd Hadley, Andy McFadden, Eric Mehlhaff, J. Mark Noworolski,
                    Nick Trown, Lars Bernhardsson, Sam Shen, Rick Weinstein,
                    Jeff Nelson, Jeff Waller, Robert Kenney, Steve Sheldon,
                    Jonathan Shekter, Dave Gosselin, Heiko Wengler, Neil Cook, Kurt Siegl
                    and many others.

Manual compiled by:
  Jonathan Shekter (jshekter@interlog.com)
With Material From:
  Jeff Nelson, Dave Gosselin, Kevin Powell,
  and the Anonymous but Fabulous COW Documentation Team
BETA revision, September 1995

## Contents:

1. Introduction
   1. Acknowlegments
2. Command Line Options
3. Complete Command Reference
4. Features
   1. Connection and Utility Features
   2. Display Features
   3. Interesting Features
5. Xtrekrc Options
   1. Keymaps
   2. CKeymaps
   3. Colors
6. Messages And Macros
   1. Your Basic Macro
   2. Newmacro
   3. RCD
   4. RCM
   5. Default Macros And Distresses
7. Xtrekrc Reference
8. Example .xtrekrc

## 1. Introduction

Welcome to COW, the Client Of Win, the best Netrek client you ever had. This document is the COW reference manual. It does NOT teach one how to play Netrek; for that, please see the Netrek Newbie Guide.

COW is a rather feature-laden (some would say "bloated") client. There are also a lot of things that can be configured. This manual includes a complete xtrekrc reference and a list of every keyboard command. If you want to know something about COW in particular, you'll find it here. (Incidentally, more than 90% of the information here is also applicable to other clients, so this file makes a good general-purpose client manual.)

Sit back, take your socks off, and enjoy!

### 1.1 Acknowledgements

Many people have contributed to COW and many many others contributed to its ancestor clients. Here is an undoubtedly incomplete list of credits presented in no particular order. Where possible their typical netrek name is provided in the hope that you will ogg them:

                  Scott Silvey
                  Kevin Smith
                  Rick Weinstein
                  J. Mark Noworolski                Passing Wind
                  Tedd Hadley                       pteroducktyl
                  Heiko Wengler                     Musashi
                  Andy McFadden                     ShadowSpawn
                  Chris Guthrie
                  Ed James
                  Eric Mehlhaff
                  Nick Trown                        Netherworld
                  Lars Bernhardsson                 lab
                  Sam Shen
                  Rick                              Videodrome
                  Jeff Nelson                       Miles Teg
                  Jeff Waller
                  Robert Kenney                     Zhi'Gau
                  Steve Sheldon                     Ceasar
                  Dave Gosselin                     Tom Servo
                  Kurt Siegl                        007
                  Kevin Powell                      seurat
                  Alec Habig                        Entropy
                  Jonathan Shekter                  KillThemAll!

## 2. Command Line Options Summary of command line options available for COW:

    u       (existance) prints usage information for the client

    C       (string of chars) name to auto-login with

    A       (string of chars) password to auto-login with

    c       (existance) checking - this will check server_port-1 and spew out
            a list of all players currently playing on that server - not all
            servers are intelligent enough to do this

    s       (integer) passive port to use, useful to attempt a manual reconnect
            after a ghostbust. Used in conjuction with -G, see section 4.5

    G       (integer) passive player slot to use, useful to attempt a manual reconnect
            after a ghostbust. Used in conjuction with -s, see section 4.5

    f       (filename) file to record packets in

    l       (filename) file to log messages

    p       (integer) port to connect to server

    d       (string of chars) display name

    m       (existance) use meta window instead of selecting a server with
            command line options - See section 4

    k       (existance) use known server window instead of selecting a server
            with command line options.

    o       (existance) use reserved.c blessing for client authentification

    R       (existance) use RSA blessing for client authentification (default)

    h       (string of chars) server name

    H       (string of chars) Gateway name

    P       (existance) log packets, generally don't want to use this

    t       (string of chars) title- the name of the window the client makes

    r       (filename) netrek default file, instead of .xtrekrc

    D       (existance) debug mode

    v       (existance) display version/expiration info then exit

## 3. Complete Command Reference

The following is the complete list of commands you can use while in play. Note that all commands are case sensitive, and a ^ denotes a control key, e.g. ^a means control+a, which is different from ^A, which is control+A (control+shift+a, in other words.)

### Combat Functions:

c Toggle cloak.
{ Turn cloak on.
} Turn cloak off.

d Detonate enemy torps. All enemy torps within a certain range will explode. They do as little as a quarter of their normal damage at maximum det range. Detting is useful for protecting another ship, causing damage to other ships (if you can manage to det enemy torpedos fired by one enemy over another) or preventing torps from hitting you. Use it carefully, though: if there are many torps nearby and only one or two will actually hit you, it is better to let them hit than det, as one direct hit will do less damge than say, 5 detted torps, each at minimally 1/4 normal damage, probably more.

D Detonate your torps. It does not do damage to anyone. But it will enable you to fire again if you have 8 torps active (the maximum.) This is not a very good idea however as you will be wastring gobs of fuel firing and then detting useless torps.

f Fire plasma torpedo. You need at least 2 kills, and must be flying a BB/DD/CA to do this. Plasma torpedos are tracking, but they can be shot down fairly easily by phaser. They do a lot of damage but use a lot of fuel. Note also that when they are shot down they explode and ships that are too close can take damage.

p Fire phaser. The mouse cursor specifies direction.

s Toggle shields
[ Shields down
] Shields up

t Fire photon torpedo. The mouse cursor specifies direction.

u Toggle shields

T Toggle tractor beam. The mouse indicates the target. This pulls the target towards you but uses a lot of fuel and raises your engine temp. Since tractors are very useful and hitting shift-T is inconvenient, many players map lowercase t to this function (see the section on keymaps.)

y Toggle pressor beam. Same as tractor (see 'T') but pushes.

_ (underscore) Turn tractor beam on. Mouse indicates target. ^ Turn pressor beam on. Mouse indicates target.

$ Turn tractor or pressor beam off.

### Movement And Navigation Functions:

0-9 Set speed to 0..9
( or ) Set speed to 10
! Set speed to 11
@ Set speed to 12
# Set speed to half of your maxwarp
% Set speed to max
> Increase speed by one
< Decrease speed by one

k Set course. The mouse cursor specifies direction.

l Lock onto object. The mouse cursor specifies what; it can be either a ship or a planet. A small triangle indicates the lock, and you will fly towards that object. If it is a planet or SB you will orbit / dock when you arrive.

; Like l but only locks onto planets and starbases (things you can orbit or dock at)

* Send in practice robot, if there's no one else playing. On many servers, this is also the key for starbase transwarp. This is Really Cool. Lock onto your SB, go no faster than warp 2, hit transwarp, and you will go warp 99 until you reach the SB (at which point you will dock), run out of fuel, or die. This is handy for reaching the front lines fast. Not all servers support this.

### Planet Functions:

b Bomb planet. You must be orbiting an enemy planet and in T-mode to do this. You only need to press it once and you will continue bombing untill the planet reaches 4 or less armies.

C Try to coup your home planet. This is a way to get back your home planet if you have no other planets. Only possible after a genocide without a server reset, then everyone leaves, losing T, and people join the team that lost again. You must have kills and be orbiting it.

o Enter orbit or dock. You must be going no faster than warp 2 and be on top of a planet or starbase.

x Beam armies down to planet (yours or enemy) or a starbase. You must be orbiting or docked to the planet or stabase in question.

z Beam armies up from friendly planet or starbase. Again, you must orbit or dock.

### Message Functions

E Send generic distress call.

F Send armies carried report

m Start sending message. After hitting this key type the destination (0..9 and a..j = specific player, F/R/K/O = specific team, T = your team, A = all) and then the body of the message. Hit enter to send or escape to abort.

X Enter macro mode. After pressing the macro key, you can send the macros you have assigned to those keys. See the section on macros. You also have available all the standard distress calls. Both the distress format and key can be changed (see: RCD). See the sections on Macros and RCD for specifics, including what the default macros are.

^0..^9
^@
^#
etc...

The distress calls are all mapped to similar control keys. For example, instead of pressing <macro>0 to send an armies carried report, you can use ^0. See the section on RCDs for available distress calls / reports.

### Misc. Functions

e Toggle docking permission (when playing a starbase). This allows or disallows other players to dock on you and repair, refuel, beam up/down armies, etc. If you turn off docking while players are docked, they will be ejected, hence the assigned key.

i or I Get information on object near mouse. Uppercase shows different info than lowercase. You can use this to, for example, find out how many armies are on a planet, where a player is logged in from, how many kills they have, or whether a planet is agricultural.

K Show Kathy Ireland

N Toggle short/long planet Names display on tactical window.

r Refit. Use this to change your ship type. You must be orbiting your home planet (Earth for Fed, Romulus for Rom, Klingus for Kli, Orion for Ori) or your team's SB. After pressing r, press the key corresponding to the ship type you want (s=scout, d=destroyer, c=cruiser, b=battleship, a=assault, o=starbase/outpost)

R Enter repair mode. This sets you at warp 0, and turns off shields and cloaking. Damage is repaired faster than normal in this state, but you cannot fire. To exit repair mode, raise shields or start moving. The fastest way to repair yourself is to do this while orbiting a repair planet or docked on an SB. When you are in repair mode a little R will appear in your flags and you will not be able to fire or cloak.

w Change war declarations. This is important. Your weapons will not lock or explode on ships belonging to races which you are not at war with, and you will take damage if you orbit planets of hostile races. So, declare war with your enemy and peace with everyone else (so you can use their fuel and repair planets.) Note that if you change your war settings while an enemy is on the screen you will be unable to do anything for about ten seconds while "the computers get reprogrammed." The moral of this is: declare war before you go into battle. Note that you start out hostile to everyone, so if you forget before your first engagement it's not too critical.

q Quit, don't re-read MOTD ("fastquit").
Q Quit, exiting to MOTD screen. If you hit either of these in red alert, a self destruct timer will start. This is so you can blow up over your enemy. While the countdown is in progress, any input cancels it.

: Toggle message logging. Saves all messages to a file so you can laugh at them later.

- Request partial update (see the section on UDP and Short Packets)

= or | Request full update (see the section on UDP and Short Packets)

& Re-read xtrekrc file

### Window And Display Functions:

B Cycle through galactic map planet display options. Possible options are show nothing, show owner, or show resources (the most useful, as on a color display you can tell owner by color.)

h Toggle help window. Display a brief summary of these commands, as well as what key each command is currenly assigned to.

L Toggle player window. This lets you see the names of the players, their stats, and, most importantly for defending planets, their kills.

/ Toggle between new and old playerlist format

M Toggle tools window

O Toggle options window. There are many neat things here, most of which are configurable via the xtrekrc file. Experiment! This is a really useful command.

P Bring up the Planet window. Lists all planets, owner, who has info on them, number of armies, and facilities at each.

S Toggle stats window. This is a larger version of your dashboard, sort of. Kind of big and annoying and I don't like it but you might.

U Toggle rank window. Shows you what ratings you need for promotion.

V Cycle through tactical planet display options. Possible options are show nothing, show owner, or show resources (the most useful, as on a color display you can tell owner by color.)

~ Toggle sound control window

. Toggle network stats window

\ Toggle lagmeter

, Toggle ping stats window

` Toggle short packets control window

+ Toggle UDP control window.

? Cycle through show nothing / show one big message window / show three message windows.

<space> Turn off all special windows (planet, rank, help, udp, etc.)

## 4. Features

This section describes in detail some of the newer, more interesting features of COW. There are many! Here is a mini index of this section:

         4.1. Connection and Utility Features
            4.1.1. The Metaserver
            4.1.2. GhostBusts and Restarts
         4.2. Display Features
            4.2.1. PlayerList Configuration
            4.2.2. BeepLite
            4.2.3. Warning Shields
            4.2.4. Hockey Lines
         4.3. Interesting Features
            4.3.1. Shell Tools
            4.3.2. Customizable Cursors

### 4.1 Connection and Utility Features

In this section we have:

The Metaserver
Ghostbusts and Restarts

#### 4.1.1. The Metaserver

The MetaServer and the MetaServerCache are provided to help you find a netrek game to join. Both services provide a list of the popular netrek servers. The MetaServer is neat because provides information on the number of players at each site. The MetaServerCache is neat because it is much faster if you can guess where a game will be.

To access the MetaServer, use the command line switch "-m". For example "cow -m". To access the MetaServerCache, use the "-k" switch instead.

1) Where to find the MetaServer:

You can use the options "metaport" and "metaserver" to point COW to a new MetaServer. The defaults for these options are:

             metaport: 3521
             metaserver: metaserver.ecst.csuchico.edu

2) How to create a list of known servers for the MetaServerCache:

Before you can use the MetaServerCache, you must give COW a file in which to cache the information from the MetaServer. Use the .xtrekrc option "metaCache" to specify this file. The files path will be relative to your home directory unless you start the file name with a slash (/).

For example, to set the cache file to "~/.metaCache" use:

            metaCache: .metaCache

Unlike the MetaServer, the MetaServerCache will not show the number of people playing at a server. If a server is contactable, it will be shown as "Active".

Warning: If "metaCache" is set, COW will also use a second, temporary file. This file with have the name of the metaCache file with the last character changed to either a 'T' or an 'R'. Eg, ".metaCache" becomes ".metaCachT" and "BEAST" becomes "BEASR". Ensure that this temporary file does not overwrite something important.

3) How much information will be shown:

You can now control the amount of information that the MetaServer displays for you by setting the "metaStatusLevel" flag. The default is:

            metaStatusLevel: 3

The status levels are coded as follows:

    0       Servers which have players but not a wait queue.
    1       + Servers with a wait queue.
    2       + Servers with nobody playing. (see NOTE1).
    3       + Servers which have Timed Out for the MetaServer (see NOTE2).
    4       + Servers which the MetaServer has not been able to connect to.

NOTE1: When using the MetaServerCache, "metaStatusLevel" values of less than 3 are treated as the value 3. This minimum is enforced because the cache does not attempt to show the number of people playing at a site.

NOTE2: If you are a long way from the MetaServer, you are advised to ignore TimeOut errors. For example, the MetaServer in America may have difficulty contacting to a server in Holland while the link from England to Holland is very good.

3) The Fallback

If you attempt to contact the MetaServer, and the connection times out, COW will try to show the MetaServerCache instead.

Similarly, if you attempt to use the MetaServerCache, and your "metaCache" file does not exist, COW will attempt to call theMetaServer.

#### 4.1.2. GhostBusts and Restarts

After a client dies, or even if you kill the client on purpose, you can recover the game and continue playing. In fact the server won't have any idea that anything but bad lag (called a ghostbust) has occurred.

The benefits of this feature include the ability to change displays, recompile code (if you happen to be a code hack), or simply recover from a core dump.

In order to use it, you have to pay attention to two numbers which are displayed when you connect to the server. A line like this appears:
*** socket 11323, player 0 ***

This indicates which player slot you have been assigned, and which socket number has been chosen as your ghostbust socket.

Now in order to restart, just do:
netrek -G 0 -s 11323

The important options are -G followed by the player slot you occupy, and -s followed by the ghostbust socket. Notice that you don't even specify a server!

This feature may NOT work on all servers. Many server gods use server code which is too old to support this feature. Also, keep an eye out for small details that are off. It is NOT logically possible to account for everything with this feature. Such things as the motd are not resent by the server when you connect, so you won't have that around anymore. Further, the client won't know who it is even connected to (see above), thus don't be shocked if the client claims you are connected to a bogus server.

WARNING: Some servers have *very* short ghostbust timeout periods. You must reconnect before this timeout expires or your slot will be given to someone else, you won't be able to reconnect. On most servers it is around 6 minutes long.

Note to experts: The server will reverify clients using whatever available means it has, including RSA or reserved.c when a ghostbust occurs and therefore whenever this feature is used.

### 4.2. Display-ish Features

In this section we have features which all control some visual aspect, i.e. something you see or the way information is presented.

#### 4.2.1. Playerlist Configuration

[ Originally by: dave, gosselin@ll.mit.edu ]

There is an .xtrekrc option called "playerlist". What it allows you to do is specify which columns of the player list you want to show and in what order. The following is a table of the available columns.

    Spc  Let   Name                 Header
    ---  ---   -------------------- -------------------
      3  'n'   Ship Number          " No"
      3  'T'   Ship Type            " Ty"
     11  'R'   Rank                 " Rank      "
     17  'N'   Name                 " Name            "
      6  'K'   Kills                " Kills"
     17  'l'   Login Name           " Login           "
      6  'O'   Offense              " Offse"
      6  'W'   Wins                 "  Wins"
      6  'D'   Defense              " Defse"
      6  'L'   Losses               "  Loss"
      6  'S'   Total Rating (stats) " Stats"
      6  'r'   Ratio                " Ratio"
      8  'd'   Damage Inflicted(DI) "      DI"
      1  ' '   White Space          " "
      6  'B'   Bombing              " Bmbng"
      6  'b'   Armies Bombed        " Bmbed"
      6  'P'   Planets              " Plnts"
      6  'p'   Planets Taken        " Plnts"
     17  'M'   Display/Host Machine " Host Machine    "
      7  'H'   Hours Played         " Hours "
      6  'k'   Max Kills            " Max K"
      6  'V'   Kills per Hour       "   KPH"
      6  'v'   Deaths per Hour      "   DPH"

So for example if you just wanted to see names and rank you'd add this line to your .xtrekrc:

playerlist: NR

NOTE ON SB STATS :
On servers which support the SBHOURS .feature, you will see slightly different things when you info a SB, or show the SB player on the playerlist. The usual offense and defense lines are replaced with SB kills/hour and deaths/hour. The kills, deaths, hours and ratio entries are all the player's SB stats as long as he is in the SB, and his normal stats otherwise.

1) Predefined "playerlist" styles:

For your viewing pleasure we have predefined some playerlist layouts that you might like to try. These predefined styles can be selected using the "playerListStyle" option in your .xtrekrc or by using the options menu (shift-O).

The "playerListStyle" options are:

            0: Custom style         = playerlist
            1: Old style            = "nTRNKWLr O D d "
            2: COW style            = "nTR N  K lrSd"
            3: Kill watch style     = "nTK  RNlr Sd"
            4):BRMH style           = "nTR N  K l M"

For backward compatability, the option "newPlist" will still select between the old style playerlist (off) and the COW style playerlist (on) if the "playerListStyle" option does not appear in your .xtrekrc.

2) The "partitionPlist" option:

Lets face it, the main role of the player list is so that you can keep track of who has kills.

To make life easier, the player list is sorted so that enemy and friendly teams are always in the same place in the list. However, in mono it is not immediatly obvious where one team starts and another team ends. If the "partitionPlist" option is "on", white space will be added to the player list to separate your teams from the other teams and the players entering the game. In color, this option is not usually required because the teams are distinct anyway.

#### 4.2.2. BeepLite

Local weenies cheat. They talk to each other. Those of us who have never met another netrek player are forced to rely heavily on the message window.

In order to even the playing field, the current feature was proposed. This feature causes certain types of RCD messages to beep or even highlite specific objects on the screen. This is done via a macro-like interface which is highly configurable. Further, bitmaps used to highlite can be substituted with your preferences.

1) Turning Beeping and Highliting on

In order to turn message beeping and highliting on, you must include the following in your .xtrekrc.

    UseLite: on

The above leaves you with the feature on, but nothing is automatically setup. If you want to configure it yourself, go to the "CONFIGURING VIA XTREKRC" section. You can include a set of reasonable defaults, instead of bothering to learn to configure it yourself by including the lines.

    DefLite: on

At any time, you can extend these simply by including some of the configuration syntax in your .xtrekrc as described in the "CONFIGURING VIA XTREKRC" section.

WARNING: Use beep _sparingly_, people (including you) will get sick very quickly of hearing your workstation beep every 5 seconds.

2) Configuring via xtrekrc

Message beeps are configured as on and off. They are turned on if the proper line is in your .xtrekrc. Otherwise they are left off.

Message lites are configured in a way very similar to macros. However, in addition to the original set of macro arguments, a new class of arguments is introduced to handle the highliting.

To configure message highliting, include something like the line below. Here "name of distress" is the RCD message type. "macro" is the macro style syntax specifying what is to be highlited.

    lite.[name of distress]:  [macro]

Below are the configurations which are equivalent to the defaults which are setup for you if using DefLite. These provide good examples for how the system works.

    lite.taking:   /c/l
    lite.base_ogg: /g/m
    lite.pickup:   /h
    lite.help:  %?%S=SB%{/c%}

The above does the following:

"taking" message highlites the planet and taker "base_ogg" message highlites the person to sync and your ship (to REALLY get your attention) "pickup" message highlites the enemy who picked up "help" tests to see if the player sending the distress is a base, if so he is highlited

You might like to change the last one to:

    lite.help:  %?%S=SB%{/c%}%?%a>0%{/c%}

This will highlite bases who distress AND carriers who distress.

Using TTS you may change the pickup macro to:

    lite.pickup:   /h/|%p++ @ %l|

This sends a big ++ message on the tactical map in addition to the light.

Note that all the MACRO parsing routines are run on these, and plain text left over is ignored. Only the highlite argument matter.

The following are the arguments for highliting:

    /c /i /I   sender
    /m /M      _your_ ship

    /p      target player
    /g      target friendly player
    /h      target enemy player
    /P      player nearest sender
    /G      friendly player nearest sender
    /H      enemy player nearest sender
    /b      planet nearest sender
    /l      target planet

The following are the arguments for sounds:

    /0      Standard window beep (incoming message sound if sound is on)
    /1 - /9 Play nt_message1 - nt_message9 sound.

Tactical Text Solution for the Tactical Tunnel Syndrome (TTS):

    /| .. | displays Text in between via TTS.

Additional defaults:

    planetCycleTime:        highlighting time for planets
    playerCycleTime:        highlighting time for players

    [ Note: while TTS works, thefollowing are Not Yet Implemented in WinCOW ]
    tts_color:              color of TTS message (should be dark)
    tts_font:               Font (large prefered)
    tts_max_len:            Max length of a message
    tts_time:               Time a TTS message is displayed
    tts_pos:                y location of the TTS message

#### 4.2.3. WarnHull

The warnHull extension is a direct analogue of the varyShields extension to the BRM client. Like varyShields, warnHull tries to keep the player informed of the state of your hull by using a bitmap. The bitmap consists of eight pixels arranged around your ship in a circle just outside you shields (see diagrams below). When warnHull is on your ship looks like it has small spikes sticking out of the shields.

The xtrekrc value warnHull enables this extension, the defaults value is off.

Example xtrekrc value:

    warnHull:               on

It works by using 8 pixels arrayed at the 4 cardinal point of the compass and 4 more at equal intervals between them.

            o
       o         o

    o               o       ; 100% -- neato diagram 1 :)

       o         o
            o

So as the hull is damaged, the pixels disappear for every 12% of damage accumulated (clockwise from the top).

       o

    o                       ; <76% -- neato diagram 2 :)

       o         o
            o

#### 4.2.4. Hockey Lines

Due to popular demand, hockey lines have been added. These are used when playing Netrek Hockey. For those of you who want to see a hockey rink on the tactical, just use the features menu (shift-O) and toggle them on.

You get:

- Blue lines (blue)
- Center line (red)
- Side lines, i.e. the rink edges (grey)
- Goal lines (red)
- Goal boxes (the color of the team)

They are a little awkward at first, but once you get used to them, you'll wonder how you lived without them.

Since this is a first pass, I'm looking for more input on what would make them better. Here are some of my comments:

1) Lines are hard coded into the software. They should be based upon planet location, so the hockey gods can move the planets around.

2) You either have them all or none. Perhaps the set of desired lines should be configurable from the xtrekrc. Also, you cannot change the colors.

3) Lines on the galactic would look pretty

If you have any comments, mail them to kantner@hot.caltech.edu

### 4.3. Interesting Features

These are some of the more esoteric and questionable features. Still, they're there!

#### 4.3.1. ShellTools

[Note: This is not yet implemented in WinCOW ]

You may execute any Unix shell command within the client. Read your mail now within the client. To do so, just send a message to the destination "!" and you get a shell prompt. Enter the command and it's output will be displayed in the tools window. Works also with macros to "!". You may disable it in the .xtrekrc for security reasons with shellTools: off CAUTION: The client will be blocked for the time the command is executed. Also some programs suspend the client if it is started in the background.

#### 4.3.2. Personalized Cursors

[ Not implemented in WinCOW ]

The personalized cursor extensions allows the user to specify their own cursors for the map, local, text, menus and info list windows.

This may now work on all machines. I know of at least one X terminal which this doesn't work properly for. It works fine on my sun:)

For infoCursorDef, textCursorDef, arrowCursorDef an optional mask may be specified. To specify a mask, first create your new cursor, say called mycursor, then create the mask and call it mycursor.mask. They both need to be on the same path. Cursor and mask *must* be the same size, if not the cursor cannot be used (why anybody would want to do this makes no sense, but... :)

These are the xtrekrc values:

    localCursorDef:         /usr/me/.local.xbm
    mapCursorDef:           /usr/me/.map.xbm
    infoCursorDef:          /usr/me/.info.xbm-
    textCursorDef:          /usr/me/.text.xbm  # the mask would be called /usr/me/.text.xbm.mask
    arrowCursorDef:         /usr/me/.arrow.xbm

## 5. Xtrekrc Options

### 5.1. Keymaps

The original key assignments were created more out of ease of memorization than speed of access in combat. For example, enabling the tractor beam is awkward, requiring the use of the shift key. Also, people will always have their particular preferences. For this reason, almost all netrek players use a keymap to change the key assignments. Its use it quite simple. Simply add a line of the form "keymap: <key><function><key><function><key><function>...." to your xtrekrc file.

Each pair of characters assigns the key specified by <key> to perform the function originally assigned to the key specified by <function>. For example, to map toggle tractor (T) to 't', and set max warp (%) to 's', you would use

         keymap: tTs%

The space bar can be remapped, but it cannot be the first key to be remapped in a sequence (obviously). It is often mapped to det:

         keymap: tTs% d

### 5.2. CKeymaps

Control keymaps (ckeymap) handles the remapping of keys in an analoguous manner to the normal keymap (keymap). The control keymap also allows the user to map both *upper* and *lower* case letters keys when pressed with the control key. This means that ^u and ^U are *different* keys when it come to mapping them.

Any combination of normal keys and control keys can be mapped to one another. In other words, you can map from control key to control key, control key to normal key, normal key to normal key, and normal key to control key.

New format for ckeymap is:
c = any printable ascii character.
^ = introduce control mapping (the key '^' not control + key.)

Each entry is a pair, like:

    cc              # regular format
    c^c             # regular->control
    ^cc             # control->regular
    ^c^c            # control->control

    Example ckeymap:
    ckeymap:                 ^a%r^b^m^ca%d5 tfDFf^^E

Special case:
The '^' must be mapped with a double ^ ("^^") in either the bound or binding key position.

Notes:
If you experience difficulties (you shouldn't) you might wish to use a normal keymap and a new ckeymap in combination. Both are read in, the keymap first then the ckeymap. This means that if a key which is defined in both the keymap and ckeymap, the ckeymap's definition will be the one used.

Analogously, control keys may be used for buttonmap, singleMacro and all macro and RCD definitions.

### 5.3. Color

It is possible to set the color of various elements in COW. In particular, any of the six standard colors, as well as the races, can be remapped. The settable colors are:

    #resource               example value
    #--------               --------------
    color.white:            seashell
    color.black:            black
    color.red:              red
    color.green:            chartreuse
    color.yellow:           #fff850
    color.cyan:             light blue
    color.light grey:       light grey

Colors can be specified as text strings, i.e. tan, chocolate, green, MediumSpringGreen (all the standard X-windows colors, in other words) or as the pound symbol '#' followed by six hexidecimal digits representing the red, green, and blue components of the color.

[WinCOW only: color names should be specified without spaces]

Race Colors: For those of you who like different colors than the defaults but are tired of going on "Purple Alert", it is possible to define race colors separately from the alert colors:

    #resource               example value
    #--------               --------------
    color.Ind:              light grey
    color.Fed:              yellow
    color.Rom:              tomato
    color.Kli:              green2
    color.Ori:              light steel blue

If a race color is not set, it defaults to the usual. (ie, if you omit color.Ori above, the orions will be color.cyan, which defaults to cyan)

## 6. Macros

### 6.1. Your Basic Macro

Typing takes time. Time is critical in dogfighting or teamwork. Most of the messages sent in Netrek are standard warnings, distress calls, requests, notifications, etc. Also retyping that insulting message everytime you doosh someone is a drag. Hence, you can put macros in your xtrekrc, and allow a single keystroke to send a message. The format is:

         mac.<key>.<dest>: <text>

<key> is the character you wish to assign to that macro, <dest> is a standard message destination (0-9a-j for player, F/R/K/O for teams, T for your team, A for all), and <text> is what you want to send. So, for example, if you put:

         mac.b.T: Bomb enemy core, please!

in your xtrekrc file, you could then press X (or whatever key you assigned to macro mode with the macroKey option -- I like TAB) and then b, and the above message would be sent to your team.

You can also send multiline macros, for example:

         mac.i.A: \\\\    You have just been DOOSHED!
         mac.i.A: (o o)   Didn't that feel good?
         mac.i.A: ( . )
         mac.i.A:  \V/

In this case the macro invoked by X,i will send the above to all. WARNING: multiline macros can be a waste of bandwidth and very annoying! Use them rarely, if at all. Some servers do not support them at all, e.g. you can send them but the server will not repeat it to the players.

If there is some macro you want to activate without hitting the macro mode key first, you can add it to the singleMacro option. For example, to make the above two macros single key macros (which might be a bad idea as you would then have now way to use the info window normally activated by 'i'):

         singleMacro: bi

But, there's more!

### 6.2. Newmacro

(Documentation by Jeff Nelson 6/4/1993)

Here is the idea: A player should be able to include in his/her macros whatever reasonable information is available. And configuring its display in whatever way is desired. In order to do this, the following syntax is used (while remaining completely compatible with old NBT macros).

A key is assigned in the defaults file (ie .xtrekrc, etc) by a line like:

         mac.F.T         Help!  Carrying %a!!

This defines a macro which will send a distress containing the number of armies a player is carrying to his team.

Note, this is NOT printf syntax! Any attempt to use formatting will fail miserably. Maybe in the future someone will want to develop a means of formatting the variables used in macros, but the only means I can think of are both bulky and ugly.

Here is another example:

         mac.f           Help!  Carrying %a!!

Unlike the first, this macro will not send directly to the team, instead it requires that you give a third keystroke specifying the recipient. For example, it could be invoked by:

         XfT             <- to your team
         Xf1             <- to player 1
         XfG             <- if you are desperate, send to God
         XfA             <- if you are stupid, send to ALL

Old macros will still work in addition to these, thus be sure there are no conflicts. These generally cause suprising results. For example, if this is in your macro file:

         mac.E.T         Help!  I'm carrying!!
         macro.E.A       You all suck!
         mac.E           Help!  I'm a twink!!
         mac.E.T         Help!  I'm carrying again!!
         macro.E.A       You all suck even worse NOW!

The suprising results would be that pressing XE would broadcast the first two messages, and then wait for the destination of the third. It would be impossible to ever use the last two. Unfortunately, multiline macros also do not work if they require a destination. There is no good reason for this, but since multiline macros annoy the hell out of me, I ain't fixing it. You can still do something like:

         mac.D.A:        D
         mac.D.A:        O
         mac.D.A:        O
         mac.D.A:        S
         mac.D.A:        H

This would properly broadcase 5 messages containing 1 character to all. If you tried to specify the destination for these by using "mac.D:", only 'D' would be sent.

Also '?' can still not be used as a macro key. The following definitions will work in a macro (where 'target x' = whatever x the mouse cursor is closest to when the macro is sent):

         Standard:

         %a   armies carried by sender
         %d   sender damage percentage
         %s   sender shield percentage
         %f   sender fuel percentage
         %w   sender wtemp percentage
         %e   sender etemp percentage
         %t   team id character of target planet
         %T   team id character of sender team
         %c   sender id character
         %n   armies on target planet
         %E   1 if etemped, 0 if not
         %W   1 if wtemped, 0 if not
         %S   sender two character ship type
         %p   id character of target player
         %g   id char of target friendly player
         %h   id char of target enemy player
         %P   id character of player nearest sender
         %G   id char of friendly player nearest sender
         %H   id char of enemy player nearest sender
         %l   three character name of target planet
         %i   sender full player name (16 character max)
         %u   full name of target player (16 character max)
         %z   3 letter team id of target planet
         %b   planet nearest sender
         %o   three letter team name of sender
         %k   number of kills sender has
         %K   number of kills target player has
         %*   if this is encountered, the macro IS NOT PRINTED
         %(SPACE)  this is replaced by a space, mainly useful for starting a
    message

         FULLY CAPITALIZED:

         %L   three character name of target planet
         %I   sender full player name (16 character max)
         %U   full name of target player (16 character max)
         %Z   3 letter team id of target planet
         %B   sender nearest planet
         %O   three letter team name of sender

         Ping stats: (may differ slightly from server '!' ping stats)

         %v   average ping stat round trip time
         %V   ping stat round trip standard deviation
         %y   percent total packet loss as calculated by server formula

         Miscellanous:

         %m   the last message you sent
         %M   the last message you sent in all caps

As a further extension to NEWMACRO, a macro may now be sent to any of the following destinations:

         %i %I %c  send message to self
         %u %U %p  send message to player nearest mouse
         %t %z %Z  send message to team of player nearest mouse
         %g        send message to nearest friendly player to my ship
         %h        send message to nearest enemy player to my ship

         with a syntax like

         #useful for INL...
         mac.C.%i: CAPTAIN
         mac.N.%i: NEWGALAXY
         mac.S.%i: START
         mac.T.%i: %Z

         mac.W.%t: SHUT UP, TWINKS!!
         mac.I.%u: %u: det when you escort!
         mac.O.%u: (%i) ogging

What this does is allows you to send a macro to a player or team specified by your mouse location instead of requiring a 3rd character to be input. Also, it allows you to send message to yourself without having to actual sit there and figure out who you are (they tried and failed back in the '60s).

Further, tests may be done within the macro system, the syntax for these test is as follows.

         %?   introduces a test
         =    equivalence
         >    greater
         <    less

Expressions are evaluated on a character by character basis until the test is resolved. The text of the test is then replaced in the macro by 1 or 0.

Test are then fed to a syntax I call conditional text. The best way to demonstrate how this works is example.

         "1%{included if true%!included if false%}"

         This would print:

         "included if true"

         whereas

         "0%{included if true%!included if false%}"

         would print:

         "included if false"

Combining the whole package, a very robust macroing system is quickly generated. One can easily design or mimic Distress calls, including the variable NBT distress of the BRM client and all the hardcoded message macroing built into my own client but never released.

Here are a few more samples to work from:

         mac.F.T:   Help!  Carrying %a!!
         mac.f:     Help!  Carrying %a!!
         mac.c.T:   %p++ near %l
         mac.b.T:   %?%n>4%{bomb %l at %n%!bomb%}
         mac.d.T:   %E%{%!%W%{%!I'm fine.  How are you? %}%}%E%{ETEMPED!!!  %}
                    %W%{WTEMPED!!!  %}Carrying %?%a>0%{%a armies!%!NO armies.%}
         mac.a.T:   %E%{ETEMPED!!!  %}%W%{WTEMPED!!!  %}Carrying %?%a>0%{%a
                    armies! %!NO armies.%}
         mac.R.A:   I'm a %?%S=SB%{star base!%!twink!%}
         mac.K.A:   KissMy%S
         mac.t:     thanks
         mac.y:     yes
         mac.n:     no
         mac.B:     bye, getting hungry/sleep/horny
         mac.e.T:   need escort going to %l%?%a>0%{, carrying %a armies!%}
         mac.v.%t   %T%c PING stats: Average: %v ms, Stdv: %V ms, Loss: %y%%

         My Favorite:

         mac.m:         %m

### 6.3 RCD

There is an even more interestring thing that you can do with macros. It's called Receiver Configurable Distress (RCD). The basic idea is that everyone likes certain standard types of messages, such as distress, pickup, carrying, etc, to appear in a certain way. Unfortunately this is usually not the way everyone else sends them. To make matters worse, everyone sends their messages in a different way and this hopelessly clutters the message window. Fortunately, there is help! You can configure the way certain standard messages and distress calls appear to you. This is an important point: you do not configure the way the messages are sent with RCD. Instead, you are configuring how they appear to _you_.

9/2/93 - jmn, jn (no relation 8^)

Receiver configurable distress calls have been added to the client and use a MACRO-like syntax.

In order to change which key you would like a message to map to, all you have to do is use either keymap like you have always done, or ckeymap, a new feature introduced to accomodate the massive number of new functions (ie message sending) that have been added in this client. Please see the ckeymap section of this document for more information on that.

In order to change *how a message appears to you* a line such as the following should be in your defaults file:

         dist.taking:   (%i) Carrying %a to %l%?%n>-1%{ @ %n%}
         dist.help:     Help!  I've fallen!  I can't get up!  %a

         This has the format

         dist.[name of distress]:          [macro]

Arguments for the macro and SMARTMACRO syntax are exactly the same as before. Any argument can be used, but usually only those in the groups "Standard" and "FULLY CAPITALIZED" apply.

You MAY NOT affect how a message appears to anyone else, this is against the basic concepts of RCD.

### 6.4 RCM (Receiver Configurable Server Messages)

Short packet kill messages may be freely configured using the macro syntax interpreter where:

- the killed person corresponds to the sender,
- the killer corresponds to the target player,
- involved planet (killed by, destroyed, taken) to the target planet,
- damage is int part of kills and shield fraction part.
- whydead goes with wtmp.

All others are undefined.

The format of the messages is:

msg.[name of message]: [RCM macro]

Available messages and their defaults are:

    msg.kill:  ........
    msg.kill:GOD->ALL %i (%S) (%T%c%?%a>0%{+%a armies%!%}) was kill
               %?%d>0%{%k%!NO CREDIT)%} for %u (%r%p) %?%w>0%{%W%!%}
    msg.planet:GOD->ALL %i (%S) (%T%c%?%a>0%{+%a armies%!%} killed by %l (%z)
                %?%w>0%{%W%!%}
    msg.bomb:%N->%Z We are being attacked by %i (%T%c) who is %d%% damaged.
    msg.destroy:%N->%Z %N destroyed by %i (%T%c)
    msg.take:%N->%O %N taken by %i (%T%c)
    msg.ghostbust:GOD->ALL %i (%S) (%T%c) was kill %k for the GhostBusters

BRMH formated kill windows may be optain by something like:

    msg.kill:  %i (%S) (%T%c%?%a>0%{+%a armies%!%}) %>30 kill
                 %?%d>0%{%k%!NO CREDIT)%} for %u (%r%p) %?%w>0%{%>65%W%!%}

### 6.5 Default Macros And Distresses

Below is a table giving the name of each distress, the key it is assigned to, and the default macro (at the time of this writing). In the table below, the first character indicates which control character each of these messages is assigned to. There are two exceptions, the generic distress call and army report are still mapped to E and F; they do not use control keys. You can also of course always hit the macro key and then the non-control version of the key indicated.

All these examples assume: you are player F0 (%T%c), alias "Twinky" (%i), flying a CA (%S), carrying 3 (%a) armies, with the mouse closest to Cassiopia (%l or %L), which has 5 (%n) armies. The nearest friendly player to the mouse is player Fc (%T%g) and the nearest player of any team to the mouse cursor is player 06 (%p). You yourself are near Beta Crucis.

    Key Distress Name

    t   taking
           %T%c->%O (%S) Carrying %a to %l%?%n>-1%{ @ %n%}
           Taking a planet. Example:
              "F0->FED (CA)  Carrying 3 to Cas @ 5"

    o   ogg
           %T%c->%O Help Ogg %p at %l
           Tell your team to ogg a carrier. Example:
              "FO->FED Help Ogg 6 at Cas"

    b   bomb
           %T%c->%O %?%n>4%{bomb %l @ %n%!bomb%}
           Tell your team to bomb a planet. Example:
              "F0->FED bomb Cas @ 5"

    c   space_control
           %T%c->%O Help Control at %L
           Request space control at specified location. Example:
              "F0->FED Help Control at CAS"

    1   save_planet
           %T%c->%O Help at %l! %?%a>0%{ (have %a arm%?%a=1 %{y%!ies%}) %}
               %s%% shld, %d%% dam, %f%% fuel
           Need help NOW to take or protect a planet. Example:
              "F0->FED Help at Cas! (have 3 armies) 60% shld, 13% dam, 63% fuel"

    2   base_ogg,
           %T%c->%O Sync with --]> %g <[-- OGG ogg OGG base!!
           That greatest of manuevres, the Ogg, as applied to an enemy SB.
           Example:
              "F0->FED Sync with --] c [--- OGG ogg OGG base!!"

    3   help1
           %T%c->%O Help me! %d%% dam, %s%% shd, %f%% fuel %a  armies.
           General distress. Same for help2. Example:
              "F0->FED Help me! 13% dam, 60%shd, 63% fuel 3 armies"

    4   help2
           %T%c->%O Help me! %d%% dam, %s%% shd, %f%% fuel %a armies.
              Defaults to same as above.

    e   escorting
           %T%c->%O ESCORTING %g (%d%%D %s%%S %f%%F)
           Tells your team who you are escorting. Example:
              "F0->FED ESCORTING c (13%D 60%S 62%F)"

    p   ogging
           %T%c->%O Ogging %h
           Tells your team who you are ogging. Example:
              "F0->FED Ogging 6"

    m   bombing
           %T%c->%O Bombing %l @ %n
           Tells your team that you are bombing. Many players turn this message
           off (by inserting a %* anywhere in the message string) as they can
           figure out for themselves where someone is going to bomb by their
           course. Example:
              "F0->FED Bombing Cas @ 5"

    l   controlling
           %T%c->%O Controlling at %l
           Tells your team that you are space controlling somewhere. This is
           the art of dominating a region of space. Example:
              "F0->FED Controlling at Cas"

    5   asw
           %T%c->%O Anti-bombing %p near %b.
           Tells your team that you are doing Anti Scout (bomber) Warfare.
           Example:
              "F0->FED Anti-bombing 6 near Bet"

    6   asbomb
           %T%c->%O DON'T BOMB %l. Let me bomb it (%S)
           Respectfully requests that you be allowed to bomb something. This is
           typically used if you are flying an AS as they have a much better
           chance of bombing a planet to a lower number, making it easier to
           take. Example:
              "F0->FED DON'T BOMB Cas. Let me bomb it (CA)"

    7   doing1
           %T%c->%O (%i)%?%a>0%{ has %a arm%?%a=1%{y%!ies%}%} at lal.
              %d%% dam, %s%% shd, %f%% fuel
           General information message. Example:
              "F0->FED (Twinky) has 3 armies at lal. 13% dam, 60% shd, 62%
               fuel"

    8   doing2
           %T%c->%O (%i)%?%a>0%{ has %a arm%?%a=1%{y%!ies%}%} at lal.
              %d%% dam, %s%% shd, %f%% fuel
           Same as doing1, by default

    f   free_beer
           %T%c->%O %p is free beer
           Tells your team about a clueless player who is an easy kill.
           Example:
              "F0->FED 6 is free beer"

    n   no_gas
           %T%c->%O %p @ %l has no gas
           Tells your team about someone who is out of fuel, good or bad.
           Example:
              "F0->FED 6 @ Cas has no gas"

    h   crippled
           %T%c->%O %p @ %l crippled
           Tells your team that someone is crippled, i.e. badly damaged.
           Example:
              "F0->FED 6 @ Cas crippled"

    9   pickup
           %T%c->%O %p++ @ %l
           One of the most useful macros. Use this if you see an enemy pick up
           armies . Example:
              "F0->FED 6++ @ Cas"

    0   pop
            %T%c->%O %l%?%n>-1%{ @ %n%}!
            Tells your team the number of armies on a planet or that it has
            popped or been bombed or dropped on recently. Example:
                "FO->FED Cas @ 5!"

    F   carrying
            %T%c->%O %?%S=SB%{Your Starbase is c%!C%}arrying
               %? %a>0%{%a%!NO%} arm%?%a=1%{y%!ies%}.
            Tells your team the number of armies you are carrying. Example:
               "F0->FED Carrying 3 armies."

    @   other1
           %T%c->%O (%i)%?%a>0%{ has %a arm%?%a=1%{y%!ies%}%} at  lal.
              (%d%%D, %s%%S, %f%%F)
           Another general call.

    #   other2
            %T%c->%O (%i)%?%a>0%{ has %a arm%?%a=1%{y%!ies%}%} at  lal.
               (%d%%D, %s%%S, %f%%F)
            Same as above

    E   help
           %T%c->%O Help(%S)! %s%% shd, %d%% dmg, %f%% fuel,
              %?%S=SB%{ %w%% wtmp,%!%}%E%{ ETEMP!%}%W%{ WTEMP!%} %a armies!
           General distress call. This one also reports if you are wtemped
           or etemped, if you are an SB. Example:
              "F0->FED Help(CA)! 60%shd, 13% dam, 63% fuel, 3 armies!

Let's walk through two simple examples.

- Map generic distress call (help) to 'h', make it appear as: "I'm about to die with %a of your team's armies!"
- Map AS bombing (asbomb) to '^A', don't change the message.

First try to seperate in your mind the two types of configurability that are going on here.

1. you are changing the key that sends the message
2. you are changing how the message appears to you

In order to do (1), just use a keymap. Nearly everyone who has tried to configure their netrek client has generated some form of keymap.

    keymap: hE

This performs the key configuration we wanted for the first example.

In order to change the message,

    dist.help:     %T%c->%O I'm about to die with %a of your team's armies!

If you configure an RCD, you also must configure the header of that message. This isn't is difficult as it sounds, just add the header to the beginning of the RCD. For example, instead of

    dist.T.taking:      Carrying %a to %l%?%n>-1%{ @ %n%}

         use

    dist.T.taking:      % %T%c@%b Carrying %a to %l%?%n>-1%{ @ %n%}

         Two headers that I recommend (the last is the default):

    % %T%c@%b
    % %T%c->%O

If you want to map the asbomb distress onto control-shift-a that is slightly more difficult. The asbomb distress normally is associated with control-6. Since control keys are involved, we MUST use the control key map feature called ckeymap. The following line would perform the operation we would like.

    ckeymap: ^A^6

         If you *also* want control-a to be asbomb, then use

    ckeymap: ^A^6^a^6

If you have read all the documentation, are sure you are using the right syntax, and RCD (or MACRO) still is not working, then check out the following.

1. Did you receive RC_DISTRESS when you logged in?

The server must send this to the client to tell the client that it understands RCD messages. Otherwise the client will just send the standard formatted RCDs.

Some clients have a mod which shows you whether RC_DISTRESS is on by looking at the first line of the macro window. If it says, "Packages active: NBT, NEWMACRO, SMARTMACRO", you have no guarantee that RCD was turned on by the server. If it says, "Packages active: NBT, NEWMACRO, SMARTMACRO, RC_DISTRESS" then RCD is definitely on. Don't worry about #1, go to #2.

2. Are any MACROs assigned to the same key as the RCD you are configuring?

If this occurs, you will see the macro and NOT the RCD.

3. Are any other RCDs assigned to the same key as the RCD you are configuring (this includes the DEFAULT RCDS!!) ?

If this occurs, you will see whichever RCD happens to be listed first when the client examines the RCD list.

## 7. Xtrekrc Reference

Upon startup, Netrek looks for a configuration file called ".xtrekrc" (or, equivalently, ".netrekrc", in first the current directory, then the user's home directory, and then in the same directory as netrek.exe. (WinCOW note: to keep with convention, the files checked for are named xtrekrc and netrekrc -- no preceding dot -- and WinCOW also checks the HOMEDRIVE and HOMEPATH environment variables) You can also set the filename with the XTREKRC envirinment variable. Many, many things can be set in the xtrekrc file, and its proper use is essential to good Netrek play.

The following is an alphabetical list of every option that can be set in the netrekrc file. The values immediately following the option names are the default value of the option if not set.

askForUpdate: off
  Get full update from server when you enter the game. This is a good idea when using short packets and UDP.

buttonmap: 1t2p3k [whatever]
  Maps mouse buttons to key functions. Format: <button><key>... like keymap.

           Available buttons:
           1 = left            2 = middle           3 = right
           4 = Shift+Left      5 = Shift+Middle     6 = Shift+Right
           7 = Control+Left    8 = Control+Middle   9 = Control+Right
           a = Shft+Ctrl+Left  b = Shft+Ctrl+Middle c = Shft+Ctrl+Right
           [ Windows client included netrekrc adds 4p = shift+Left for phaser. ]

cloakChars: ??
  The characters to use to show cloaked ships on the galactic map. Other popular choices are "()" and "><". They make nice crosshairs ;-)

clock: 2
  Stat clock: 0 -- no clock, 1 -- h:m, 2 -- h:m:s.

continueTractor: on
  If off, only shows tractors for a short time.

continuousMouse: off
  If on, if you drag the mouse while holding a button down, it will have the same effect as clicking rapidly while you move the mouse. On is considered borgish and most servers will not allow it.

dashboard: off
  Use a dashboard (LAB) style for the stats line. Try this.

documentation: cow.txt
  File to display in documentation window

enemyPhaser: 1
  Width of enemy phaser lines. Makes it MUCH easier to tell when enemies are phasering you. I use a width of 5.

extraAlertBorder: on
  Also uses inside border to show alert status.

fillTriangle: off
  If locks are shown, whether or not to fill the triangle.

galacticFrequent: on
  Update galactic map frequently. This is good for plocking cloakers.

ignoreCaps: on
  Ignore the Capslock key.

keymap: aabbcc
  Maps new keys to old keys. Format: <new key><old key><new key><old key>... see section 5.1.

keepInfo: 15
  How many updates (frames) to keep the info windows (activated by i and I ) on the screen.

keepPeace: on
  Keep peace with races after death. Useful so you don't have to reset your war declarations window every time you start a new ship.

logging: off
  displays messages to stdout (i.e. writes them on the console) if set.

logfile: (filename)
  ... or, alternatively saves messages to a text file (see above option).

macroKey: X
  Name of key to use for macro escape (TAB,ESC, or <key>). I like using TAB becuase it's easy to hit, better than the default 'X' which requires two keystrokes.

metaCache: [none]
  Filename of metaserver cache file; this file will be sued to display a serverlist if the metaserver is unreachable or -k is specified on the command line.

metaserver: metaserver.ecst.csuchico.edu
  Computer to use as the metaserver

metaport: 3521
  Port to connect to metaserver on

motionThresh: 16
  How many pixels to move (x+y) before each simulated button-press when using continuousMouse mode.

newdashboard: off
  Use the "new" dashboard. Has graphs instead of text, now the standard.
  Needs dashboard on.

newdashboard2: off Use new the other "new " dashboard (Cup half full vs. Cup half empty).

newDistress: on
  Distress calls are right justified if this is on.

newPlanetBitmaps: off
  Use MOO style planet bitmaps.

newPlist: off
  New playerlist, instead of total kills, deaths offense and defense it shows login and stats (off+bomb+planet).

phaserShrink: 0
  (integer 0-16) Don't draw the first "phaserShrink"/16 th of your phaser.
  This makes it easier to see incomming torps.

phaserWindow: off
  Show phaser-hit messages in seperate window. Equivalent to "review_phaser.mapped: on". (See section on window placements)

playerList:
  Playerlist format. See section 4.2.

playerListStyle:
  The style for the player list. See section 4.2. The options are:

  (0) Custom player list as defined by the playerlist variable above,
  (1) Old player list,
  (2) Traditional COW player list,
  (3) Kill watch player list,
  (4) BRMH Player list.

  If "playerListStyle" is set, newPlist is ignored.
  Use the options menu (shift-O) to try the different styles.

rejectMacro: off
  If on, COW automatically stops NEWMACROs from being sent when the server has turned NEWMACROs off. That is any macro in your defaults file defined by a mac.*.*: (TEXT) line.

reportKills: on
  Show kill messages.

ROMVLVS: off
  Use "ROMVLVS" bitmaps for Rom team. Kinda cool. Default rom CA bitmaps are SO dorky-looking.

singleMacro: FE
  List of macros that can be invoked with a single keypress (i.e. don't have to press the macro key first to enter macro mode.) The defualt setting puts the "carrying" and "distress" macros on single keys.

shellTools: on
  If off, this disables shelling out to commands from COW.

shiftedMouse: on
  Use shift and control for extra mouse buttons (e.g. buttons 4-c)

shortKillMesg: off
  Shrink and line up all kill messages.

showFuelOnLocal:
  Make border color indicate fuel status.

showGalactic: 1
  Map window planet bitmaps display: 0 -- show owner, 1 -- show resoures, 2 -- show nothing.

showIND: off
  Mark independent planets with X's drawn over them.

showLocal: 1
  Local window planet bitmaps display: 0 -- show owner, 1 -- show resoures, 2 -- show nothing.

showLock: 3
  Options for lock triangle display. 0 -- dont show lock, 1 -- show on galactic, 2 -- show on local, 3 -- show on both.

showMapPlanetNames: on
  Show planet names on map (galactic) window

showmotd: on
  Display motd if in wait queue

showMySpeed: off
  Display your current speed next to player number on tactical display.

showPlanetNames: on
  Show planet names on local (tactical) window

showPlanetOwner: on
  Show planet owner on local (tactical) window

showPlayerStatus: off
  Player list: also show players who are not alive.

showShields: on
  Show ship shields. Why would anyone want to turn this off?

showStats: on
  Show stats window . You can accomplish the same thing with "stats.mapped: <on/off>" but it's here anyway. This option is made superflous with the newdashboard options.

showTractorPressor: on
  Show your own tractor/pressor on the screen.

shrinkPhaserOnMiss: off
  Use "phaserShrink" and "theirPhaserShrink" even if a phaser misses.

sortPlayers: off
  Use sorted player list.

sortMyTeamFirst: off
  Modifies "sortPlayers" so that your team is sorted immediately before the enemy teams.

sound: on
  Enable sound effects

sounddir: ./sounds
  Directory to look in for sound files

theirPhaserShrink: 0
  "phaserShrink" for other player's ships.

useLite:
  Use BeepLite, which highlights the planets and players that are the subject of people's messages when they use RCD.

useTNGBitmaps:
  Use The Next Generation bitmaps for the Federation ships.

updatespersec: 5
  How many frames/sec the server should send. Max is 10. Note most servers do not support update rates higher than 5/sec.

varyShields: on
  Change shields bitmap to reflect your damage level.

warnShields: on
  Show current alert level (green, yellow, red) as shield color

warnHull:
  Warn hull state based on damage .

warp: off
  Warp the mouse to the message window during message send. I personally prefer this because you can move your mouse out of the window in case something happens that you need to react to without aborting the message.

waitMotd: on
  Show the motd while on the wait queue.

whichNewPlanetBitmaps: 0
  The actually sets the same option internally as newPlanetBitmaps. 1 and 2 are, presumably, the Rabbit Ear bitmaps and the ZZ Minimal bitmaps.

zeroArgUsage: on
  If no arguments, print usage instead of connecting to default server.

### Login Options:

defaultShip: CA
  Default ship to use on button-click entry (SC,DD,CA,BB,AS,SB).

name: <your_name_here>
  Your default character name.

password: <whatever>
  Your default password. If both name and password are supplied, many clients will attempt to log you in automatically.

### Server Options:

These can be used to set up server aliases and server-specific options

port: 2592
  Default port to use.

port.<x.y.z>: 2592
  Default port to use with server x.y.z. NOTE: if x.y.z is aliased (server.alias: x.y.z), use the alias instead.

newMesgFlags: on
  Server-dependent. Should be on for all new servers.

server: calvin.usc.edu
  Name of the default server to use if the -h flag isn't given.

server.alias: < x.y.z>
  Aliases. Replace x.y.z with full server name, and specify <alias>. From then on you can specify that server by doing 'netrek -h <alias>' instead of the full name

useRSA.x.y.z: on
  Use RSA on server x.y.z? NOTE: if x.y.z is aliased (server.alias: x.y.z), use the alias instead.

### Window placments:

These are of the form

         <window>.geometry: <width>x<height>+<xpos+<ypos>

Or you can specifiy just the position:

         <window>.geometrey: +<xpos>+<ypos>

or just the size:

         <window>.geometry: <width>x<height>

Possible windows are:

         netrek         - main window
         local          - Main fighting window
         map            - Galactic map
         warn           - warning window
         message        - message window
         review         - all messages window
         review_all     - messages to all window
         review_team    - messages to team window
         review_your    - messages to individual window
         review_kill    - kills messages window
         review_phaser  - phaser hits window
         planet         - planet list window
         player         - playerlist window
         war            - war declarations window
         fed            - Fed selection window
         ori            - Orion selection window
         rom            - Romulan selection window
         kli            - Klingon selection window
         quit           - The quit countdown clock
         option         - options menu window
         rank           - rank window
         sound          - sound options window
         stats          - statistics window
         tstat          - dasboard window
         help           - help window
         UDP            - UDP options window
         lagMeter       - lag meter window
         pingStats      - ping statistics window
         buttonkeymap   - the key map window
         xtrekrc_help   - the xtrekrc help window (duh)
         MetaServer List- (including the space) Metaserver window
         tools          - the shell tools window
         DocWin         - Documentation window
         xtrekrcWin     - xtrekrc display window

You can specify whether windows are initially mapped (displayed), like this:

         <window>.mapped: <on/off>.

You can also specify parenting of windows. If one window is a child of another, when that window's parent is hidden or displayed, the child window will also be hidden or displayed. Also, a window that is not parented may have a caption on it, depending on your window manager or OS.

For examples of all of these, see the example netrekrc.

### Technical Options:

dontPing: off
  Don't attempt to start ping packets from the server.

forceDisplay:
  [ WinCOW only ] Force display type. This overrides the display auto-detection.
  0 = monochrome or 16, color, 1 = 256 color, 2 = 16/24 bit color.

forceMono:
  Force monochrome display. (Actually, color is still used, but the colors are chosen so that they map correctly to black/white.)

netStatFreq: 5
  Lag stats update: 1 -- least often, 10 -- most often.

netstats: off
  Keep lag statistics. Bringing up the lagmeter ('l') will toggle this anyway, but it's there.

redrawDelay: 0
  if >0, does a screen refresh only every n/10 sec
  (useful for slow displays and high lag).

tryUdp: on
  Try to use UDP upon entering the game.

tryShort: off
  Try using short packets upon entering the game. [Windows client: the default netrekrc file included turns this on as it really helps over SLIP. ]

udpClientRecv: 1
  How UDP packets should be received. Possibilites are: 0 -- use TCP (no UDP), 1 -- use simple UDP, 2 -- use fat UDP. Try setting this to 2 if you are getting a lot of server to client packet loss.

udpClientSend: 1
  How UDP packets should be sent. Possibilites are: 0 -- use TCP (no UDP), 1 -- use simple UDP, 2 -- use enforced UDP (state only), 3 -- use enforced UDP (state & weapon). The "enforced" modes will repeat the UDP packets if the client doesn't get a response from the server, on the assumption that the packet got lost. Try using 2 or 3 if you are getting a lot of client to server packet loss.

udpDebug: 0
  Level of UDP code debugging. You may enjoy seeing debug trace messages.

udpSequenceChk: on
  Throw out udp packets that arrive out of order. This is a good idea.

updatesPerSecond: 5
  Number of updates (frames) per second (most servers limit to 5).

useRSA: on
  Use RSA binary verification. If you turn this off you will not be able to play on many servers.

## 8. Example .xtrekrc

Thanks to Jaime Allistair for this.

This is an insanely long netrekrc (or xtrekrc, same thing). It has almost all the options available in COW in it. It is not really meant to be used as is! It is meant to be an example and to be edited down to what you need. Why shouldn't you use it? Well, you can, but there are a lot of lines that just set things to their defaults and this serves no purpose, just makes the client load slower and take up more memory.

    # xtrekrc file for Netrek
    # version: .01
    #    date: 3-1-95

    # The purpose of of this xtrekrc file is to have all the options available
    # to anyone who wants to make a change to the xtrekrc.  This file will
    # bring up all the message windows.  This will help in the area of newbies
    # not reading messages because they do not know how to get a message window
    # up.

    # If you have any changes, typos, fixes, additions, or any things
    # that were left out, please email me.  I will try to make these files
    # grow with the clients, as the client grows.

    # EMAIL:  jaime@diamondmm.com
    #  NAME:  Jaime Pirnie

    #                                       Enjoy!

    # /-----------------------\
    # | ### Login Options ### |
    # \-----------------------/

    #--------------------
    # Name
    # Your automatic character login name

    name: allister

    #--------------------
    # Password
    # Your default character login password

    password: secret

    #--------------------
    # Default Ship type
    #
    # Your default ship type
    #
    #   AS = Assault Ship
    #   BB = Battleship
    #   DD = Destroyer
    #   CA = Cruiser
    #   SC = Scout

    defaultShip: CA

    # /------------------------\
    # | ### Server Options ### |
    # \------------------------/

    #--------------------
    # Default Server port
    # Default server port to use

    port: 2592

    #--------------------
    # New Message Flags
    # Server-dependent.  Should be on for all new servers

    newMesgFlags: on

    #--------------------
    # Default Server
    # Name of the default server if the -h flag is not used

    server: factoryx.factoryx.com

    #--------------------
    # Server Aliases
    #
    # Server aliases. Syntax: [server.alias: <x.y.z>] Replace x.y.z with full
    # server name, and specify <alias>.  From then on you can specify that
    # server by doing 'netrek -h <alias>' instead of the full server name.
    # Below is an alias for wormhole.

    server.wormhole: wormhole.ecst.csuchico.edu

    #--------------------
    # Use RSA on a specific server
    # Use RSA on server x.y.z? NOTE: if x.y.z is aliased (server.alias: x.y.z),
    # use the alias instead.
    # Below it tells it to use RSA on wormhole.

    useRSA.wormhole: on

    # /---------------------------\
    # | ### Technical Options ### |
    # \---------------------------/

    #--------------------
    # Don't Ping
    # Don't attempt to start ping packets from the server

    dontPing: off

    #--------------------
    # Force Display type
    #
    # Force the display type for the client
    # NOTE: Windows client ONLY
    #
    #   0 = monochrome or 16 colors
    #   1 = 256 colors
    #   2 = 16/24 bit color

    forceDisplay: 1

    #--------------------
    # Force monochrome display
    #   (actually, color is still used internally, but
    #    the colors are chosen so that they map correctly to black & white.)

    forceMono:

    #--------------------
    # Network statistics frequency
    #
    # Lag stats update
    #
    #   1 = least often
    #   2 = a bit more often
    #   |
    #   |
    #  \|/
    #  10 = most often
    #

    netStatFreq: 3

    #--------------------
    # Network Statistics
    #
    # Keep lag statistics
    #   (Bringing up the lagmeter ('l') will toggle this anyway, but its there)

    netstats: off

    #--------------------
    # Try UPD packets
    # Try to use UDP upon entering the game

    tryUDP: on

    #--------------------
    # Try short packets
    # Try using short packets upon entering the game
    #   (Windows client: This really help for SLIP connections)

    tryShort: on

    #--------------------
    # UDP Client Receive
    #
    # How UDP packets should be received
    #
    #   0 = TCP
    #   1 = simple UDP
    #   2 = fat UDP

    udpClientReceive: 2

    #--------------------
    # UDP Client Send
    #
    # How UDP packets should be sent
    #
    #   0 = TCP
    #   1 = simple UDP
    #   2 = enforced UDP (state only)
    #   3 = enforced UDP (state & weapon)

    udpClientSend: 3

    #--------------------
    # UDP Debugging Level
    # Level of UDP code debugging.  You may enjoy seeing debug trace messages.

    udpDebug: 0

    #--------------------
    # UDP Sequence Checking
    # Throw out UDP packets that arrive out of order.  This is a good idea.

    udpSequenceChk: on

    #--------------------
    # Updates Per Second
    # Number of updates (frames) per second (most servers limit to 5)

    updatesPerSecond: 5

    #---------------------
    # Use RSA binary varification.
    # If you turn this off you will not be able
    # to play on many servers.

    useRSA: on

    #---------------------
    # I have no idea ????? Anybody know??!

    useTRports:

    # /---------------------------\
    # | ### Features, options ### |
    # \---------------------------/

    #--------------------
    # Ask For Update
    # Get full update from server when you enter the game.  This is a good
    # idea when using UDP and/or short packets.

    askForUpdate: on

    #--------------------
    # Mouse Button Map
    #
    # Maps mouse buttons to key functions
    #   Format: <button><key>... just like the keymap
    #   Available buttons:
    #
    #   1 = left
    #   2 = middle
    #   3 = right
    #   4 = Shift+Left
    #   5 = Shift+Middle
    #   6 = Shift+Right
    #   7 = Control+Left
    #   8 = Control+Middle
    #   9 = Control+Right
    #   a = Shft+Ctrl+Left
    #   b = Shft+Ctrl+Middle
    #   c = Shft+Ctrl+Right

    buttonmap: 1a2p3k

    #---------------------
    # Cloak Characters
    # The characters to use to show cloaked ships on the galactic map.
    #   Popular choices are:
    #
    #     ()
    #     <>
    #     ><
    #     ??

    cloakChars: ??

    #---------------------
    # Clock Type
    #
    # Which type of clock to show
    #
    #   0 = No clock
    #   1 = hh:mm
    #   2 = hh:mm:ss

    clock: 2

    #--------------------
    # Continue Tractor Beam
    # Show tractor beam at all times when locked
    # If off, it will only show tractor beam for a short time.

    continueTractor: on

    #--------------------
    # Continuous Mouse
    # Allows you to hold down a mouse button, it will have the same effect if
    # you hit the button rapidly.

    continuousMouse: on

    #--------------------
    # Dashboard
    # Use a dashboard (LAB) style for the stats line.

    dashboard: on

    #--------------------
    # Use alternate dashboard
    # (Cup half full vs. Cup half empty) dashboard.
    # NOTE: Requires dashboard on.

    newdashboard: on

    #--------------------
    # Use the new new dashboard

    newnewdashboard: on

    #--------------------
    # Use the new dashboard2

    newdashboard2: on

    #--------------------
    # Use default BeepLite RCD highlighting (?)

    defLite: on

    #--------------------
    # Enemy Phasers
    # Width of enemy phaser lines. Mostly useful on mono displays so you can
    # distinguish your phasers from enemy phasers.

    ememyPhasers: 1

    #--------------------
    # Extra Alert Border
    # Use inside border for alert status

    extraAlertBorder: on

    #--------------------
    # Fill Lock Triangle
    # If locks are shown, whether or not to fill the lock triangle.

    fillTriangle: off

    #--------------------
    # Galactic Map Updates
    # Update Galactic map frequently.  This is good for phaser locking cloakers.

    galacticFrequent: on

    #--------------------
    # Keyboard Keymap
    # Maps new keys to old keys. Format: <new key><old key><new key><old key>
    ...

    keymap: attT p

    #--------------------
    # Keep Info on screen
    # How many updates (frames) to keep the info windows (activated by i and I)
    # on the screen.

    keepInfo: 15

    #--------------------
    # Keep Peace after Death
    # Keep peace with races after death.  Useful so you dont have to reset your
    # war declarations window every time you start a new ship.

    keepPeace: on

    #--------------------
    # Message Log
    # Log all messages to a file.

    logMessage: off

    #--------------------
    # Macro Escape Key
    # Name of the key used for macro escape (TAB,ESC, or <key>).  I like using
    # ESC because it is easy to hit, butter than the default 'X' which requires
    # two keystrokes.

    macroKey: ESC

    #--------------------
    # Meta Server List level
    #
    # Tells the client what to list when using the MetaServer.
    #
    #       0   Servers which have players but not a wait queue.
    #       1   + Servers with a wait queue.
    #       2   + Servers with nobody playing. (see NOTE1).
    #       3   + Servers which have Timed Out for the MetaServer (see NOTE2).
    #       4   + Servers which the MetaServer has not been able to connect to.

    metaStatusLevel: 4

    #---------------------
    # Motion Threshhold
    # How many pixels (x+y) before each simulated button-press when using
    # continuous mause mode.

    motionThresh: 16

    #---------------------
    # New Planet Bitmaps
    # Use MOO style planet bitmaps

    newPlanetBitmaps: on

    #---------------------
    # Player List Style
    #
    #       0 Custom player list
    #       1 Old player list
    #       2 Traditional COW player list
    #       3 Kill watch player list
    #       4 BRMH Player list

    playerListStyle: 1

    #---------------------
    # New Player List
    # Reduced stats format for the player list.
    # Can also be toggled with the '\' key.

    newPlayerList: off
    newPlist: off

    #---------------------
    # User Configurable Player List
    # Use ('\') to toggle between your player list, and the stock one (or
    # visa/versa depending on the status of newplist or newplayerlist).
    # With newPlayerList or newPlist set to on (depending on your client),
    # it will use the user configurable player list as the default.  If set
    # to off, it will use the stock player list as the default.  Again,
    # the ('\') key toggles between the two.
    #
    # Here are the possible columns:
    #
    #       Spc  Let   Name                 Header
    #       ---  ---   -------------------- -------------------
    #         3  'n'   Ship Number          " No"
    #         3  'T'   Ship Type            " Ty"
    #        11  'R'   Rank                 " Rank      "
    #        17  'N'   Name                 " Name            "
    #         6  'K'   Kills                " Kills"
    #        17  'l'   Login Name           " Login           "
    #         6  'O'   Offense              " Offse"
    #         6  'W'   Wins                 "  Wins"
    #         6  'D'   Defense              " Defse"
    #         6  'L'   Losses               "  Loss"
    #         6  'S'   Total Rating (stats) " Stats"
    #         6  'r'   Ratio                " Ratio"
    #         8  'd'   Damage Inflicted(DI) "      DI"
    #         1  ' '   White Space          " "
    #         6  'B'   Bombing              " Bmbng"
    #         6  'b'   Armies Bombed        " Bmbed"
    #         6  'P'   Planets              " Plnts"
    #         6  'p'   Planets Taken        " Plnts"
    #        17  'M'   Display/Host Machine " Host Machine    "
    #         7  'H'   Hours Played         " Hours "
    #         6  'k'   Max Kills            " Max K"
    #         6  'V'   Kills per Hour       "   KPH"
    #         6  'v'   Deaths per Hour      "   DPH"
    #

    playerlist: nTMSBbPpHkVv

    #---------------------
    # Phaser Messages (client dependent)
    #
    #   0 = none
    #   1 = all
    #   2 = team
    #   3 = indiv
    #   4 = kill
    #   5 = total

    PhaserMsg: 5

    #---------------------
    # Phaser Messages in Individual Window (See also phaserwindow)
    # Displays the phaser hit points in the individual window.

    phaserMsgI: on

    #---------------------
    # Phaser Window
    # Show Phaser hit messages in separate window. (See also
    # reveiw_phaser for default mapping and geometry)

    phaserWindow: on

    #---------------------
    # Unknown..  Anybody know?!

    planetCycleTime: 8

    #---------------------
    # Unknown..  Anybody know?!

    refreshInterval:

    #---------------------
    # Report Kill Messages
    # Shows kill messages

    reportKills: on

    #---------------------
    # ROMVLVS bitmaps for Rom Team

    ROMVLVS: on

    #---------------------
    # Single Macro Keys
    # List of macros that can be invoked with a single keypress
    # (i.e. dont have to press the macro key first to enter macro mode)

    singleMacro: FE

    #---------------------
    # Shifted Mouse buttons
    # Allows you to use shift and control keys for extra mouse buttons
    # (this would be for mouse buttons 4-c)

    shiftedMouse: off

    #---------------------
    # Short Kill Messages
    # This option shirinks and lines up all the kill messages.
    # It makes it easyer to see if somebody was killed while carrying
    # armies or not.

    shortKillMesg: on

    #---------------------
    # Show Fuel on Local
    # This makes the border color indicate fuel status

    showFuelOnLocal: off

    #---------------------
    # Show Galactic
    # This option sets what is shown on the planet bitmaps
    #
    #   0 = show owner
    #   1 = show recources
    #   2 = show nothing

    showGalactic: 1

    #---------------------
    # Show Local
    # This option sets what is shown on the local planet bitmaps
    #
    #   0 = show owner
    #   1 = show recources
    #   2 = show nothing

    showLocal: 1

    #---------------------
    # Show Lock Triangle
    #
    #       0=don't show
    #       1=galactic only
    #       2=tactical only
    #       3=both

    showLock: 3

    #---------------------
    # Show Map Planet Names
    # This option shows on the map (galactic) window.

    showMapPlanetNames: on

    #---------------------
    # Show my Speed
    # This option prints your current speed next to your player number in your
    # tactical display.

    showMySpeed: off

    #---------------------
    # Show Planet Names
    # This option shows the planet names on the local (tactical) window.

    showPlanetNames: on

    #---------------------
    # Show Player Status
    # This option, when on, shows players in the player list who are not alive.

    showPlayerStatus: on

    #---------------------
    # Show Shields
    # This option lets you see your ships shields.

    showShields: on

    #---------------------
    # Show Stats
    # Shows the stats window.  You can accomplish this same thing
    # with "stats.mapped: <on/off>" but its here as well.

    showStats: off

    #---------------------
    # Show Tractor / Pressor Beams
    # This option lets you see your own tractor/pressor beams.

    showTractorPressor: on

    #---------------------
    # Sort Player List
    # This option sorts the players in the player list according to team.

    sortPlayers: on

    #---------------------
    # BeepLite
    # This option turns on BeepLite.  This highlights the planets and players
    # that are the subject of people's messages when they use RCD.

    useLite: on

    #---------------------
    # Display last message
    # This option displays the last message in the warning message window.

    useMsgw: off

    #---------------------
    # Use [T]he [N]ext [G]eneration style bitmaps
    # Need I say more?

    useTNGBitmaps: on

    #---------------------
    # Updates Per Second
    # How many frames/sec the server should send.  Max is 10.

    updatesPerSecond: 10

    #---------------------
    # Vary Shields
    # This option changes the shield bitmap to reflect your shield damage.

    varyShields: on

    #---------------------
    # Warn Hull state
    # Warns you on hull state based off of damage.

    warnHull: on

    #---------------------
    # Mouse Cursor Warp
    # Warp the mouse to the message window during message send.  This
    # used to be useful when you have to have the mouse cursor in the message
    # window to type a message.

    warp: off

    #---------------------
    # Show MOTD
    # This option shows the [M]essage [O]f [T]he [D]ay while in the wait queue.

    waitMotd: on

    #---------------------
    # Which New Planet Bitmaps
    # This option actually sets the same option internally as newPlanetBitmaps.
    # 1 and 2 are, presumably, the Rabbit Ear bitmaps and the ZZ Minimal
    bitmaps.

    whichNewPlanetBitmaps: 2

    #---------------------
    # Zero Argument Usage
    # This option when on: If no arguments, print usage instead of connecting
    # to the default server.

    zeroArgUsage: on

    # /-------------------------\
    # | ### Window Placment ### |
    # \-------------------------/

    #---------------------
    # Window Placment syntax (geometry)
    #
    # This displays the size, and position of the window.
    # <window>.geometry:<width>x<height>+<xpos>+<ypos>
    #
    # This displays just the position of the window.
    # <window>.geometry:+<xpos>+<ypos>
    #
    # ...or just the size
    # <window>.geometry:<width>x<height>
    #
    #---------------------
    # This option sets whether windows are initially mapped (displayed).
    #
    # <window>.mapped:<on/off>
    #---------------------
    # This option sets the parenting of windows.  If one window is a child of
    # another, when that window's parent is hidden or displayed, the child
    # window will also be hidden or displayed.  Also, a window that is not
    # parented will have a title bar at the top of the window.
    #
    # <window>.parent:<parent window name>
    #
    #---------------------
    # List of possible window names
    #
    #       netrek          Main Window
    #       local           Main Fighting Window
    #       map             Galactic Map
    #       warn            Warning Window
    #       message         Message Window
    #       review          All Messages Window
    #       review_all      Messages to All Window
    #       review_team     Messages to Team Window
    #       review_your     Messages to Individual Window
    #       review_kill     Kill Messages Window
    #       review_phaser   Phaser hits Window
    #       planet          Planet List Window
    #       player          Player List Window
    #       war             War Declarations Window
    #       fed             Federation Selection Window
    #       ori             Orion Selection Window
    #       rom             Romulan Selection Window
    #       kli             Klingon Selection Window
    #       quit            The Quit Countdown Clock
    #       option          Option Menu Window
    #       rank            Rank Window
    #       stats           Statistics Window
    #       sstat           Dashboard Window
    #       help            Help Window
    #       UDP             UDP Options Window
    #       lagMeter        Lag Meter Window
    #       pingStats       Ping Statistics Window
    #       buttonkeymap    Keymap Window
    #       xtrekrc_help    The xtrekrc help Window
    #       macro           Active Macros Window

    #-------------------
    # Actual Window placments

    netrek_icon.geometry:   +1031+0

    #netrek.geometry:        1018x740+0+0
    netrek.geometry:        +0-20
    #local.parent:           netrek
    #map.parent:             netrek

    #warn.parent:            netrek
    #warn.geometry:          +0+549

    #message.parent:         netrek
    #message.geometry:       +0+575

    #review.parent:          netrek
    #review.geometry:        +510+500
    review.geometry:        +512+556
    #review.mapped:          off

    #review_all.parent:      netrek
    #review_all.geometry:    +510+500
    review_all.geometry:    +504+556
    #review_all.mapped:      on

    #review_team.parent:     netrek
    #review_team.geometry:   +510+608
    #review_team.mapped:     on

    #review_your.parent:     netrek
    #review_your.geometry:   +510+666
    #review_your.mapped:     on

    #review_kill.parent:     netrek
    #review_kill.geometry:   +0+600
    #review_kill.mapped:     on

    #review_phaser.parent:   netrek
    #review_phaser.geometry: +0+672
    review_phaser.geometry: 81x5+0+800
    review_phaser.mapped:   off

    #planet.parent:          netrek

    #player.parent:          netrek
    #player.geometry:        +510+500
    player.geometry:        81x23+0+556
    player.mapped:          on

    #war.parent:             netrek
    war.geometry:           +800
    #fed.parent:             netrek
    #ori.parent:             netrek
    #rom.parent:             netrek
    #kli.parent:             netrek
    #quit.parent:            netrek
    #option.parent:          netrek
    #rank.parent:            netrek
    #stats.parent:           netrek
    #tstat.parent:           netrek
    #help.parent:            netrek
    #UDP.parent:             netrek
    #lagMeter.parent:        netrek
    #pingStats.parent:       netrek
    #buttonkeymap.parent:    netrek
    #xtrekrc_help.parent:    netrek
    #macro.parent:           netrek

    # /----------------\
    # | ### Macros ### |
    # \----------------/

    #----------------------
    # Macro syntax:
    #
    # mac.<key>.<dest>:<text>
    #
    # <key> is the character you wish to assign to the macro.
    # <dest> is a standard message destination
    #        (0-9a-j for player, F/R/K/O for teams, T for your team, A for ALL)
    # <text> is the text you want to be printed when the macro is used.

    # Here is two examples :

    mac.b.T: Bomb enemy core, please!

    mac.i.A:  \\\\    You have just been DOOSHED !!
    mac.i.A:  (o o)   Didn't that feel good?!
    mac.i.A:  ( . )
    mac.i.A:   \V/

For further information check: http://cow.netrek.org/
Comments, suggestions and bug reports to cow@netrek.org