Chapter 6 - Configuration

[Website Index]

[INL Rulebook]

 [Chapter 1]
 > Introduction
 [Chapter 2]
 > Basic Instructions
 [Chapter 3]
 > Finer Points & Strategies
 [Chapter 4]
 > Miscellaneous Stuff
 [Chapter 5]
 > Resources
 [Chapter 6]
 > Configuration
 [Chapter 7]
 > Example .xtrekrc

 > [Beginners]
 > [Opening Screen]
 > [Help Sheet]
 > [Combat]
 > [Game Scheme]
 > [Galactic Map]
 > [General/Misc.]
 > [LPS]
 > [Planet Taking Hints]
 > [Robots]
 > [Tournaments]
 > [Tricky Moves]
 > [Terms]


[Tactical Summary]
 > [Dogfighting]
 > [Ogging]
 > [Planet Taking Guide]
 > [Ship Index]
 >> [Ship Facts]
 >> [Ship Opinions]
 >> [Assault Ships (AS)]
 >> [Battle Ships (BB)]
 >> [Cruisers (CA)]
 >> [Destroyers (DD)]
 >> [Scouts]
 >> [Starbases (SB)]

[Base Practice]


[COW Info]


[E-mail me]
 - leaf(a)real-time.com

Website hosted by:
Real Time Enterprises, Incorporated
Linux and Network Solutions

Upon startup, Netrek looks for a configuration file called ".xtrekrc" (or, equivalently, ".netrekrc", in first the current directory, then the user's home directory (under Windows NT, or as set by the HOMEDRIVE and HOMEPATH environment variables), and then in the same directory as netrek.exe. 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.

6.1 Complete Command List

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.)


Keyboard Commands


Set Warp Speed 0-9


Set speed to warp 10


Set speed to warp 11


Set speed to warp 12


Set speed as fast as you can go!


Transwarp (lock on to SB, set warp speed to 2, press *)


Cloak/Uncloak Ship. While cloaked your ship will not show up on other players' tactical displays. It will show up as a ?? on the Galactic display.


Lock onto object. Sets your course to that object. If it's a planet or a Base, you automatically dock there once you arrive.


Fire torpedo


Fire phasers


Tractor Beam. Pulls target toward you but uses a lot of fuel. Useful to make sure ships that run away get killed.


Pressor Beam. Just like Tractor, but it pushes target away. Useful in keeping those over-aggressive warships away from you.


Raise/lower shields. Your shields consume fuel. Also, your ship will only repair internal damage while shields are down. But you are much more vulnerable when your shields are down.


Bring up the Player List Window. So you can see the names behind the player numbers, as well as their stats.


Get information on the player or planet nearest your mouse cursor. Lower and uppercase report different things, try both.


Quit game quickly


Quit game, but read the MOTD first h Bring up help window

How to send Messages:
Press 'm' or put your mouse cursor in the outgoing message window. It is the lower of the two thin one-line windows just below the galactic or tactical window (depending on which client you are using). Type the letter for who you want to send to:

0-9, a-j

Message is sent to player of that number/letter


Send to your own team


Send to All (Everyone!)


Send to Federation


Send to Klingons


Send to Romulans


Send to Orions

Use the Esc key to cancel a message before sending it.

Command Messages:
You can send the following to your self to obtain information. Some of these you can send to someone else to obtain information about them (i.e. stats, ping)



gives you help


gives you your current stats


gives your SB stats


tell the amount of time left in the game


tell how many people are in queue


tells you which client you are using


tells you your ping time


gives you ping and lag status


gives you your current game stats

     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. If you can do this near an enemy it will cause damage. It will also 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 wasting

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
)    Set speed to 10
!    Set speed to 11
@    Set speed to 12
#    Set speed to half of your maxwarp
%    Set speed to as fast as you can go!
>    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.

     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 a 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.


     The distress calls are all mapped to similar control keys.  For example, instead of pressing 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.

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

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.
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.

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

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

 ~    Write out current settings to an xtrekrc file

& or :    Re-read "nifty" settings from 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.

^k:  Toggles the keymap window. Shows your xtrekrc-specified keymap, ckeymap, and buttonmap.

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 sort by number / sort by name
\    Toggle netween new and old playerlist format

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.

^s:  Toggle macro window. Indicates which macroing packages  (NBT, NEWMACRO, SMARTMACRO, RCD) are active.

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.)

^x: Toggle xtrekrc window. Displays a woefully incomplete listing of xtrekrc options and their current settings.

,    Toggle ping stats (network statistics) window

+    Toggle UDP control window.

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

/    Toggle lagmeter window.

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


6.2 Keymaps

     The default 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: ...." to your xtrekrc file.  Each pair of characters assigns the key specified by  to peerform the function originally assigned to the key specified by . 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

6.3 Generic netrekrc Reference

    The following is a list of some of the more standardized options that can be set in the netrekrc file. This varies from client to client, consult your client docs. The values immediately following the option names are the default value of the option if not set (for the COW-lite/SWINE client, anyway.)

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

babes: on
     [ COW/BRMH only ] Shows a pic of Kathy Ireland when you ghostbust or take over the galaxy.

buttonmap: 1t2p3k [whatever]
     Maps mouse buttons to key functions.  Format: ... 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.

colorfulPhasers: off
     [ COW-lite only ] Cycle through the different colors when you get a phaser lock on someone. Looks cool, try turning it on.

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.

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

newdashboard:  off
     Use alternate (Cup half full vs. Cup half empty) dashboard. Needs dashboard on.

newnewdashboard: off
     Use new new dashboard.

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.

keymap: aabbcc
     Maps new keys to old keys. Format: ...

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.

logMessage: off
     Log messages to a file.

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

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

newPlanetBitmaps: off
     Use MOO style planet bitmaps.

newPlayerList: off
     Reduced stats format for the player list. Can also be toggled with the '\' key.

phaserMsgI: off
     Display phaser-hit points in the individual window. (See also phaserWindow.)

phaserWindow: off
     Show phaser-hit messages in seperate window.   See also review_phaser for default mapping and geometry (message widths 13, 32, 80 supported).

reportKills: on
     Show kill messages.

     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.

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

shortKillMesg: off
     Shrink and line up all kill messages.

     Make border color indicate fuel status.

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

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

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

showPlanetNames: on
     Show planet names 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: " but it's here anyway.  This option is made superflous with the newdashboard options.

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

sortPlayers: off
     Use sorted player list.

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

useMsgw: off
     Display the last message in the warning message window.

     Use The Next Generation bitmaps for the Federation ships.

updatesPerSecond: 5
     How many frames/sec the server should send. Max is 10.

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

     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).

     Your default character name.

     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.: 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 .  From then on you can specify that server by doing 'netrek -h ' 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
     .geometry: x++
     Or you can specifiy just the position:
     .geometrey: ++
     or just the size:
     .geometry: x

     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
     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)
     macro          - active macros window

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

     .mapped: .

     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.

     [ Windows client only. ] Force display type. 0 = monochrome or 16 color, 1 = 256 color, 2 = 16/24 bit color.

     Force monochrome display. (Actually, color is still used internally, 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.

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.



6.4 Macros

     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:


      is the character you wish to assign to that macro,  is a standard message destination (0-9a-j for player, F/R/K/O for teams, T for your team, A for all), and  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!


     NEWMACRO documentation - 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):


     %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


     %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


     %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"

     "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.5 RCD

     There is an even more interesting 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 ditress, 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_.


     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.6 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.
          "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, makingit 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

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.

     1. Map generic distress call (help) to 'h', make it appear as: "I'm
about to die with %a of your team's armies!"

     2. 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%}


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.