Command
processor
VGA Plus!
implements a mechanism by which players can
affect the actual operation of the program. A VGA
Plus! module known as the command processor
interprets special messages from the players and
modifies the game configuration without any host
intervention. This mechanism allows for players
to set up formal alliances, to change and view
their race names, and other such functions. The
host can configure which aspects of the command
processor will be available to players.Players communicate with
the command processor via command messages. These
are simply messages composed within the client
program's messaging facility that are sent back
to the player. For example, for player 3 to send
a command message, he/she would compose a message
to player 3. The command processor realizes that
the sender and receiver of the message are the
same player and interprets this message as a
command message.
As a special case, if the first non-blank
character of a command message is a left angle-bracket
'<', then the message is not treated as a
command message but is processed as an ordinary
message.
This feature exists for two reasons:
When a player sends a
universal message, then the player
himself becomes a recipient of the
message. But this means that the sender
and the receiver of the message are the
same player and VGA Plus! would interpret
the message as a command message for the
sending player.
Since the first line of a universal
message is always <<<
Universal Message >>> then
the leading '<'
causes VGA Plus! to treat a universal
message as a normal message
Players that use the message
facility to send reminders to themselves
can do so without triggering the command
processor simply by beginning their
message with a '<'
character
A player may
send any number of command messages in a single
turn. Each command message may consist of more
than one actual command. Each single command
occupies a single line of the message. Multiple
commands may be placed on multiple lines. Blank
lines are ignored.
Every command message has the following format: command
[param] [param] .... , where command
is one of the valid commands listed below. The
number of parameters accepted by each command
varies.
Each complete command (command name and
parameters) must fit on a single line. Commands
may not be split over multiple
lines. Parameters are separated by any amount of
white spaces. There can only be a maximum of 15
words in a single command (including the command
itself and any parameters). There are no special
meta-characters such as \ or ".
In command
syntax, the "(" and
")" parentesis delimit optional
parameters.
The valid
commands currently recognized by VGA Plus! are
listed below. Each command lists the
corresponding configuration option, which enables
player access to the command's functionality.
Each command has
a minimum number of distinguishing characters
that must be found for the command to be
recognized. This saves typing and also creates
more room on each message line for long commands.
The minimum number of characters for each command
is listed with the command descriptions. For
example, the racename command
may be shortened to simply 'ra'.
Commands are case-insensitive.
Valid
command list:
Name: Racename ( short syntax: 'ra' )
Syntax: racename {Get | {(Long|Short|Adjective)
NAME}}
Enabled by: Command Processor
Commands - Racename
This command
allows a player to view or modify his race names.
The get subcommand takes no
further parameters and returns a message showing
the player's race names (long name, short name,
and adjective) as reflected in the current
contents of the RACE.NM file on the host's system.
The long, short,
and adjective subcommands allow
the player to set either of these race name
components. Each of these subcommands takes any
number of parameters which are concatenated into
a single string to form the actual name.
Length
restrictions are imposed on race names. Submitted
names which are longer than the allowed limits
are silently truncated. Currently, the following
restrictions exist:
Long
Name: 30 characters
Short Name: 20 characters
Adjective: 12 characters
Back to index
Name: Allies (short syntax: 'a')
Syntax: allies {(Add|Drop) R R
...}
Enabled by: Command Processor
Commands - Allies
This command
allows players to make (and break) formal
alliances.
An alliance is offered with the add
subcommand. This subcommand takes any number of
race parameters indicating the players to whom
alliance is offered. These race parameters are
numbers in the range 1 to 11 (note that 'A' and
'B' are not to be used for players 10 and
11). An alliance is rescinded with the drop
subcommand. This subcommand also takes any number
of race parameters.
If "Single-alliance
game" config option is enabled, use of this
command will break any previous alliance.
Note: If you disable this
command, also the standard HOST.EXE "ffX"
and "eeX" friendly codes will be
disabled.
Back to index
Name: Message (short syntax: 'm')
Syntax: message {R [R R ...]} |
Universal | Allies | Enemies
Enabled by: Command Processor
Commands - Message/Rumor
This command
allows a player to send a message to a list of
other players. The effect is the same as if the
usual client program messaging facility were used
except that the specific players to receive the
message can be specified (unlike some client
programs which only let you send a message to one
recipient or to all players).
The parameters of the message command are race
numbers. There may be as few as 1 or as many as
12. Note that race numbers must be numeric only
and, specifically, races 10 and 11 are not
to be specified as 'A' or 'B'.
As a special case, you may use as the only
parameter the words:
Universal
(or 'u') to specify all 11 races.
Allies (or 'a')
to specify all allies.
Enemies (or 'e')
to specify all enemies.
The remainder of
the command message is the body of the text to
send to the receivers, hence no other command
processor commands should be contained in the
message.
The message generated by this command bypasses
the command processor hence it need not begin
with '<' if the player lists his own race as a
recipient.
Back to index
Name: Rumor o Rumour (short syntax: 'ru')
Syntax: rumor {R [R R ...]} |
Universal | Allies | Enemies
Enabled by: Command Processor
Commands - Message/Rumor
This command is
identical to the message command except for one
difference, the sender of the message is not seen
by the players. This command can be used to send
anonymous messages to one or more players. The
words rumor and rumour
are synonyms.
Back to index
Name: Xtern (short syntax: 'x')
Syntax: xtern Parm Parm ...
Enabled by: Command Processor
Commands - Extern
The purpose of
this command is to allow external host utilities
to have a player input mechanism to control their
behaviour. Much like the other command processor
commands modify HOST behaviour, the xtern
command can be used to pass application-specific
parameters to an add-on utility to modify its
behaviour. This command can be used as an "escape
mechanism" for communication with other
utilities.
This command will add one line to the file XTERNCMD.EXT
in the game directory. For each turn, any
existing file by this name will be overwritten,
and the file will be created if it does not exist.
The first line of this file contains the turn
number followed by the 18-character time stamp of
the current turn. The format of each subsequent
line in this file is as follows:
P: ARG1
ARG2 ...
where P
is the player number (1 through 11) and ARGx
are the parameters of the xtern
command as specified by the player. For example,
if the command from player 3 is: xtern
buy a vowel, VGA Plus! will write the
following line to the XTERNCMD.EXT file: 3:
buy a vowel
The xtern
command has no other function other than writing
to this external file. It does not affect VGA
Plus! in any other way, and this command never
returns an error.
Back to index
Name: Give (short syntax: 'g')
Syntax: give
{Ship|Planet|Minefield} NNN [To] R
Enabled by: Command Processor
Commands - Give
This command is
used to transfer ownership of a player's ship or
planet to another player. A player may give his
ship or planet to any other race (they need not
be allies) as long as:
the
player that is to receive the ship or planet has
at least one of their own ships in the same
location.
if a ship is being given away, the ship is in
orbit over a planet owned by the player that is
to receive the ship.
The gsN
friendly code has the same effect as the give
ship command. Note that the friendly
code, however, has precedence over give
ship. That is, if a ship is being given
away using the friendly code and a command
processor command, the friendly code determines
the new owner.
When a ship is given away, its waypoint is
cleared (hence the ship will not move this turn),
its mission is cleared, its primary enemy is
cleared.
When a planet is given away and there is a base
orbiting the planet, then all hulls in base
storage are recycled and any pending build order
is cancelled.
Any number of give
commands may be submitted in one turn but only
the first command for a given ship or planet is
remembered. That is, if a ship is given to race 4
and then another command gives it to race 5, and
then race 4 will receive the ship. The word
following give in the command must be ship,
planet or minefield but all can be shortened to a
minimum recognizable sequence, 's',
'p' or 'm' are
the shortest cases. The next word must be a ship,
planet or minefield
ID number. The next word is optional, but if it
is present, it must be 'to' or
simply 't'. Finally, the last
word is the race number that is to receive the
ship or planet. It is a number in the range 1 to
11.
Back to index
Name: Extmission (short syntax: 'e')
Syntax: extmission Ship Mission
[Parm1 [Parm2]]
Enabled by:
This command is
meant to provide players using the DOS Planets
client program access to the VGA Plus! extended
missions. WinPlan players can use the M.I.T.
interface from the ship mission screen to access extended mission and need not use this
command. Similarly, VPA players can simply choose
an extended mission the way they would select a
normal mission. Both WinPlan and VPA players
should place the MISSION.INI
file that comes with VGA Plus! (or one that is
provided by the game's host) into the game
subdirectory.
Note: Only players using the
DOS Planets client program need to use this
command.
The extmission
command always takes at least two parameters, the
ship whose mission is to be changed and the extended mission number for the ship.
Extended mission numbers are those set in the MISSION.INI
file (for WinPlan players) and nominally begin
with 20, increasing up to however many extended
missions VGA Plus! currently supports. Note that
the host can change the base extended mission
value so the player using the extmission command
needs to receive this value from the host. Please
see the "Extended Missions" page for a list of
extended mission numbers.
Some extended missions require parameters. In
WinPlan/VPA, the "Intercept" and "Tow"
numbers represent these parameters. Here, they
are simply specified following the ship and
mission numbers (Parm1 and Parm2).
Not specifying all required parameters for a
given mission will cause the extmission command
to fail.
The extmission command may also
be used to set an extended mission that is in use
by another add-on and not recognized by VGA Plus!
(but in no case can the mission be set to a
number less than 20). In this case, VGA Plus!
will not check to see that the command includes
sufficient parameters (for the Parm1 and Parm2
fields). The player is responsible for specifying
sufficient parameters, otherwise the unspecified
parameters may have unpredictable values.
Back to index
Name: Remote (short syntax: 're')
Syntax: remote
{Allow|Forbid|Drop} ShipID
Enabled by: General Options -
Remote Ship Control
This command is
used to interface to the remote control feature
of VGA Plus! (See the "Remote Ship Control" section for more
information on what this feature does).
The allow subcommand allows an
ally to control one of your ships. A player
currently controlling a foreign ship to terminate
the remote control uses the drop
subcommand. A ship's owner to terminate the
remote control uses the forbid
subcommand. All subcommands may be abbreviated up
to a single letter ('a', 'd',
'f' respectively).
In all cases, the ShipID
parameter must specify a valid ship ID. For the forbid
subcommand, this must be a ship that is owned by
another player who controls one of your ships.
The forbid and allow
subcommands must refer to a ship owned by the
player issuing this command.
Back to index
Name: Waypoint (short syntax: 'w')
Syntax: waypoint ShipID XCoord
YCoord (FCode)
Enabled by: Command Processor
Commands - Waypoint
This command
allows a player to set the waypoint of one or
more ships. The ShipID parameter
must specify a valid ship ID. XCoord
and YCoord are the X and Y
coordinate of the new waypoint. If you enter the FCode
(optional) parameter then all your ships with
that friendly code will have the same waypoint.
If you enter a value of -1 for XCoord and a value
between 1 and 500 (or 999 if the host uses HOST999)
for YCoord then the waypoint will be set to
current position of the ship with ID equal to
YCoord.
If you enter a value of -1 for YCoord and a value
between 1 and 500 for XCoord then the waypoint
will be set to current position of the planet
with ID equal to XCoord.
Back to index
Name: SendMc (short syntax: 'smc')
Syntax: sendmc PlanetID1
PlanetID2 MegaCredits
Enabled by: General Options -
Base can transfer money
This command
allows a player to send Megacredits between
starbases. The PlanetID1 and PlanetID2
parameters must specify valid planet IDs. The Megacredits
parameter indicates the amount of Megacredits
transferred, and must be in range 0 to Transfer
MCs up to max config parameter. You can
send money also to allied starbases.
Back to index
Name: refit (short syntax: 'rf')
Syntax: refit
{Engines|Beams|Tubes} ShipID Type
Enabled by: Command Processor
Commands - Refit
This command
allows a player to refit a ship with different
tech components. The ShipID
parameter must specify valid ship ID. The Type
parameter must specify valid ship's part, as show
below:
Engines:
1 = Star Drive 1
2 = Star Drive 2
3 = Star Drive 3
4 = Super Star Drive 4
5 = Nova Drive 5
6 = HeavyNova Drive 6
7 = Quantam Drive 7
8 = Hyper Drive 8
9 = Transwarp
Beams:
1 = Laser
2 = X-Ray Laser
3 = Plasma Bolt
4 = Blaster
5 = Positron Beam
6 = Disruptor
7 = Heavy Blaster
8 = Phaser
9 = Heavy Disruptor
10 = Heavy Phaser
Tubes:
1 = Mark 1 Photon
2 = Proton Torp
3 = Mark 2 Photon
4 = Gamma Bomb
5 = Mark 3 Photon
6 = Mark 4 Photon
7 = Mark 5 Photon
8 = Mark 6 Photon
9 = Mark 7 Photon
10 = Mark 8 Photon
This is a
function more advanced than standard Fed SUPER-REFIT
mission, and it's available to all players.
Because the refit was a Fed-only advantage, you
must spend money to refit your ships if you're
not the Fed Player. Host can sets the refit fee
from 0% to 500% for every player (Standard is 0%
for Fed and 200% for all other races ).
This means that if you refit a ship you'll pay as
additional fee: number of parts refitted * single
part cost * refit fee rate. For example, if you
want refit engines (with Transwarp) on a Rush
class ship, you'll have to pay: 6 * 300 * 200 /
100 = 3600 MCs
If no Type
parameter is provided, VGA Plus! will try to
refit starting from higher tech parts. In all
cases, if you don't have a full set of ship's
parts in starbase storage and you have at least
the resources needed to build them, VGA Plus!
will build the desired tech parts !
Old parts taken off the ship will be placed in
starbase storage. Refit requires a full set of
parts for the ship to work correctly.
Back to index
Name: Fix (no short syntax)
Syntax: fix ShipID
Enabled by: Command Processor
Commands - Fix
This command
allows a player to fix a ship. After a starship
has returned from a mission you can use the
starbase to fix the ship. The fix
command will repair all the damage done to the
ship in one game turn. You can also fix allied
ships.
You can fix only ONE damaged ship at turn, but
you can recrew several ships in the same turn.
The ShipID parameter must
specify a valid ship ID.
Back to index
Name: Jettison (short syntax: 'jet')
Syntax: jettison ShipID Number
Enabled by:
This command
allows a player to jettison fighters/torps in
deep space. The ShipID parameter
must specify a valid ship ID. The number
parameter indicates how many fighters/torpedoes
you want eject in deep space.
This command was added to allow DOS Planets users
jettison fighters/torpedoes. Winplan has this
feature already built-in.
Back to index
Name: Dump (no short syntax)
Syntax: dump BaseID (What)
Enabled by: Special (see down)
This command
allows a player to recycle old starbase parts.
The ship's parts used in pending building order
are not recycled. The BaseID
parameter must specify a valid starbase. The
optional parameter What must
specify what you're recycling, and must be:
Hulls
(abbr. H)
- recycle hulls only.
Engines (abbr. E)
- recycle engines only.
Beams (abbr. B)
- recycle beams only.
Tubes (abbr. T)
- recycle tubes only.
Torps (abbr. TO)
- recycle torpedoes only.
Starbase (abbr. S)
- recycle whole starbase!!!
If this
parameter is missing or is 0, then this command
will work as in previous VGA Plus! versions,
recycling all hulls, engines, beams and tubes.
Players will be
able to dump whole starbases only if "Allow
dumping whole starbase" config option is
enabled.
Note: this function is usually
available only to registered players. Also
shareware players may use it if the host enable
"Dump (shareware)" in VGA Plus!
configuration.
Back to index
Name: Autotax (short syntax: 'atx')
Syntax: autotax
{Happy|Calm|Unhappy} (FCode)
Enabled by: Command Processor
Commands - AutoTax
This command
accepts two parameters:
The first can be happy, calm
or unhappy (abbr. h,
c or u). The
tax rate of each player's planet will be set to
reach the status specified in this parameter and
to obtain the max possible amount of Megacredits.
The second parameter is reserved for a 3-digit
friendly code; this allows applying the autotax
command only on planets with a matching friendly
code. If the first digit of this parameter is
"*" then the autotax command will be
applied for each player's planet.
Back to index
Name: Detonate (no short syntax)
Syntax: detonate MinefieldID (LightYears)
Enabled by: Command Processor
Commands - Detonate
This command
will cause a specified minefield to explode.
Ships in the area will sustain a damage variable
from 0% to 200% of a single standard mine hit.
Ships orbiting a planet will be protected, as the
starbases also.
The optional parameter LightYears
allows you to obtain a partial minefield
explosion. In this case, the exploding area will
have a ring shape, always starting at external
border back to the minifield centre (Example: if
we want to detonate an 10 lys area of a 80 lys
radius manifield, at the end we'll have a 70 lys
radius minefield).
Note: this command will not
works on Web minefields.
Back to index
Name: Config (short syntax: 'cfg')
Syntax: config
Enabled by:
This command
will cause VGA Plus! to send its configuration
messages.
Note: this command will be
ignored if the host changes the configuration,
because VGA Plus! detects these changes and send
automatically the configuration messages to all
players. This behaviour avoid duplicated messages
to be sent.
Back to index
Name: BaseLay (no short syntax)
Syntax: baselay BaseID (Torps) (Race)
Enabled by: Command Processor
Commands - Base Lay Mines
This command is
intended to replace the miN
friendly code used in previous VGA Plus! versions.
It allows a minefield to be laid with the exact
number of torps desired and it also allows the
field to be laid in another player's name.
Setting the Torps parameter to 0 means that all
torps will be converted to mines. Setting the
Race parameter to 0 means that the mine will
belong to the same race as the base's owner, as
usual.
If a base set
this command and the base itself is in an existing
minefield, the laid mines will not create a new
minefield but will be added to the existing
minefield. But, if "Multiple minefields"
option is active, and the planet has a friendly
code starting with "N", this rule will
be ignored and a new minefield will be created.
This command is
also available to shareware players, but there
are two conditions: all torpedoes must be used
and the minefield owner cannot be specified.
Back to index
Name: BaseLayWeb (no short syntax)
Syntax: baselayweb BaseID (Torps)
(Race)
Enabled by: Command Processor
Commands - Base Lay Mines
This command is
intended to replace the miW
friendly code used in previous VGA Plus! versions.
It allows a minefield to be laid with the exact
number of torps desired and it also allows the
field to be laid in another player's name.
Setting the Torps parameter to 0 means that all
torps will be converted to mines. Setting the
Race parameter to 0 means that the mine will
belong to the same race as the base's owner, as
usual.
If a base set
this command and the base itself is in an exiting
minefield, the laid mines will not create a new
minefield but will be added to the existing
minefield. But, if "Multiple minefields"
option is active, and the planet has a friendly
code starting with "N", this rule will
be ignored and a new minefield will be created.
This command is
also available to shareware players, but there
are two conditions: all torpedoes must be used
and the minefield owner cannot be specified.
Note: this command is only
available to the Crystalline race; it will be
ignored for all other races.
Back to index
Name: BaseLayIn (no short syntax)
Syntax: baselayin BaseID (Torps)
(MinefieldID)
Enabled by: Command Processor
Commands - Base Lay Mines In
This command is
a mine-laying command that allows you to specify
the number of torps to lay and a specific
minefield ID number to add to. The number of
torps to lay (parameter Torps) may be 0 to
indicate that all torps are to be converted to
mines. MinefieldID parameter indicates a specific
minefield ID to add to. This command can only be
used to add torps to an existing minefield (unless
MinefieldID parameter is 0, in which case this
command is no different from the regular mine-laying
command). Your base must be within the designated
minefield and it must be a minefield that you own
(except if you are using the miN
friendly code). If either of the above are not
true, this command does nothing. No new minefield
is created if the designated minefield ID is
invalid.
Note that this
command also considers the miN
friendly code, if it used. If this code is used,
the MinefieldID parameter must specify a
minefield that is owned by the player indicated
in the friendly code.
Note: "Multi-Minefields"
option will be ignored with this command.
Shareware
players can perform this command only on their
minefields and using all torpedoes aboard the
ship.
Back to index
Name: BaseLayWebIn (no short syntax)
Syntax: baselaywebin BaseID (Torps)
(MinefieldID)
Enabled by: Command Processor
Commands - Base Lay Mines In
This command is
a web mine-laying mission that allows you to
specify the number of torps to lay and a specific
minefield ID number to add to. The number of
torps to lay (parameter Torps) may be 0 to
indicate that all torps are to be converted to
mines.
Note that this
command also considers the miN
friendly code, if it used. If this code is used,
the minefield ID parameter must specify a
minefield that is owned by the player indicated
in the friendly code.
Note: "Multi-Minefields"
option will be ignored with this command.
Shareware
players can perform this command only on their
minefields and using all torpedoes aboard the
ship.
Note: this command is only
available to the Crystalline race; it will be
ignored for all other races.
Back to index
Name: BaseScoop (no short syntax)
Syntax: basescoop BaseID (Torps)
(MinefieldID)
Enabled by: Command Processor
Commands - Base Scoop Mines
This command is
intended to replace the msc
friendly code used in previous VGA Plus! versions.
This command also implies a regular BaseSweep
command (you can avoid this by setting the
friendly code of the planet to "NSW"),
but if the base is inside a same-race minefield,
then the mines will be converted back to torps,
up to the maximum specified by parameter 1. If
parameter 1 is 0 then all possible mine units are
converted back into torps.
Note: this command, if
performed by a shareware player, will be turned
to BaseSweep command.
Note: this command, in the
same game turn, can be sent only one time for
every starbase. This command will not work if the
player first sends a BaseSweep command to the
same starbase.
Back to index
Name: BaseSweep (no short syntax)
Syntax: basesweep BaseID (Race)
(MinefieldID)
Enabled by: Command Processor
Commands - Base Sweep Mines
This command is
intended to replace the swm
friendly code used in previous VGA Plus! versions.
If the Race parameter is a valid enemy race
number then all enemy race's minefields in range
will be swept. Parameter MinefieldID allow to
sweep a single minefield by inserting the
relative ID number.
Note: this command, in the
same game turn, can be sent only one time for
every starbase. This command will not work if the
player first sends a BaseScoop command to the
same starbase.
Back to index