Here is a more in-depth explanation into some of the features
that can change the server.
1) config/config.h defines :
AUTOMOTD - Use this if you're not going to run the update daemon.
This will check you .motd and rebuild it every once in a
while. Don't use both AUTOMOTD and the update daemon.
CHAIN_REACTION - This will not give credit for chain-reaction and
will also report how a player died.
ERIKPLAGUE - Eric Mehlhaff's planet plague code that was used for
SINL 93.
INL_POP - This is the planet pop code used in SINL 93.
NEED_EXIT - Some systems need exit to be defined in socket.c
NO_PLANET_PLAGUE - Don't allow planet plaguing. Don't use this with
ERIKPLAGUE.
RSA - Use RSA verification. RSA is now deprecated.
SHOW_RSA - Display some messages like failed RSA verification message
and type of client on entry of player.
RESETGALAXY - Every time a conquer occurs reset the galaxy.
SELF_RESET - galaxy will reset if daemon dies.
SHORT_THRESHOLD - More support for Short packets. Causes the
update rate to halve under certain conditions. With
modern networks, we do not need or want this, and we
have never seen it trigger anyways. Save some CPU
cycles by defaulting it to off.
SURRENDER_SHORT - Cut the surrender time in half when the genocide
counter starts.
SPEEDUP - Some misc. improvements to make the daemon faster.
TWO_RACE - Conquer only a 1/4 of the galaxy for the galaxy to reset.
SENDFLAGS - Print flags used in the compile on the MOTD.
CHECK_ENV - Check the environment variable NTSERV_PATH for the
location of system files.
GPPRINT - Print the path that is being used to find the system files.
ONCHECK - trekon (xbiff) support for checking if the logins.
NEWMASK - Use a newer tournament mask function that is less rigid
than older version. Doesn't take preferences into account.
FLAT_BONUS - 5x bonus for killing last army on a planet
BASEPRACTICE - Base training server. (Need special robots, see
README.basep).
NEW_CREDIT - give 1 planet for destroying, two planets for taking.
SBFUEL_FIX - fix starbase re-fueling
NEW_ETEMP - Wreck's etemp fix
DOGFIGHT - .sysdef interface for dogfight robot
VOTING - allow voting mode
ALLOW_EJECT - define to allow players to eject others (only when
VOTING is defined).
NO_BRUTALITY - disallow fighting between waiting players in the
dogfighting mode (only when DOGFIGHT is defined).
ROBOT_OBSERVER_OFFSET - define to ensure that the moderation robot
is always in slot g.
SB_RAPID_COOLDOWN - allows for twice the normal rate of weapon
cool down; useful on base-practice.
ALLOW_PRACTICE_ROBOT_SB - allows practice robots to be refit into
starbases if defined.
2) .sysdef parameters:
All parameters follow the rule:
1 = TRUE, 0 = FALSE
CLUE - (0 or 1) Turn on clue checking
HUNTERKILLER - (0 or 1) Have the hunterkiller on the server
RESETGALAXY - (0 or 1) reset the galaxy every time the daemon starts
LOGALL - (0 or 1) log all messages. Use with CHECKMESG.
LOGGOD - (0 or 1) log messages with "god:" at the beginning. Use with
CHECKMESG.
CHECKMESG - (0 or 1) check message logging.
DOOSHER - (0 or 1) Enable the auto-doosher.
WHYMESS - (0 or 1) with .mk define CHAIN_REACTION will report how a
player died.
SHOWSYSDEF - (0 or 1) will show some of the sysdef options on the
motd.
PLANET_MOVE - (0 or 1) Not recommended. Will move the planets around.
TOURN - ( >3 ) Number of players needed on each side for t-mode.
CLASSICTOURN - (0 or 1) Emulate the old behavior of tournamentMask()
by removing the restrictions on joining a diagonal race if 2
players are present on the opposing diagonal, and remove the
logic not allowing teams to grow past 4 humans before T mode
starts.
REPORT_USERS (0 or 1) Report users on the metaservers if enabled.
Disabling this option is useful for bot servers such as
base-practice servers so they always report the server
as empty.
SHIPS - ( SC, DD, CA, BB, AS, SB ) Type of ships that are allowed at
the server.
WEAPONS - (TRACTOR, PLASMA) Special weapons that are allowed.
PLKILLS - ( >=0 ) Number of kills needed to get plasmas.
DDRANK - ( 0 - 7 ) Rank needed to get a DD.
0 = Ensign , 7 = Admiral
DD_MINIMAL_OFFENSE - ( >=0.0 ) Minimal offense required to get a
destroyer.
GARANK - ( 0 - 7 ) Rank needed to get a GA.
0 = Ensign , 7 = Admiral
SBRANK - ( 0 - 7 ) Rank needed to get a starbase.
0 = Ensign , 7 = Admiral
SB_MINIMAL_OFFENSE - ( >=0.0 ) Minimal offense required to get a
starbase.
RESTRICT_BOMB (0 or 1) - Disable bombing out of t-mode.
NO_UNWARRING_BOMBING - Don't allow 3rd space bombing at any time.
HOCKEY - (0 or 1) Turn on hockey mode. Mutually exclusive with
all other non-standard server modes.
INL - (0 or 1) Turn on INL (clue game) mode. Mutually exclusive
with all other non-standard server modes.
CHAOS - (0 or 1) Turn on chaos mode. Ships are more powerful and
re-generate faster. Mutually exclusive with all other
non-standard server modes.
TOPGUN - (0 or 1) Misc things to make playing harder and only clueful
players may like.. Mutually exclusive with all other non-
standard server modes.
PRET - (0 or 1) Enable pre-t entertainment mode. Mutually exclusive
with all other non-standard server modes.
PRET_GUEST - (0 or 1) Use 'guest' logins for pre-t robots if set.
PRET_PLANETS - (1-10) Set win condition for pre-t mode. This is
the number of planets a team must be up by in order to
win a round of pre-t entertainment.
PRET_SAVE_GALAXY - (0 or 1) If set galaxy is saved on t-mode to
pre-t transitions and if t-mode starts again within
PRET_GALAXY_LIFETIME seconds the galaxy will be restored
when t-mode starts.
PRET_GALAXY_LIFETIME - (integer seconds) Number of seconds the saved
t-mode galaxy is eligible to be restored when t-mode starts
again.
PRET_SAVE_ARMIES - (0 or 1) If set armies carried by players at the
start of Pre-T will get returned to the players home planet.
This will occur just prior to the galaxy being saved if
PRET_SAVE_GALAXY is enabled.
NEWTURN - (0 or 1) Different turning speeds.
HIDDEN - (0 or 1) Enemy players that are far away from a friendly ship
during t-mode will be hidden.
MAXLOAD - (0 or 1) The maximum load allowed on the server's machine.
PLANETS - (0 - 39) The planets the will be the home planets. There are
4 params here. The order is fed, rom, kli, and then ori.
CONFIRM - (0 or 1) Use binary confirmation.
UDP - (0 or 1) Allow UDP packets. Reduces lag.
PING_FREQ - ( >1 ) how often to ping in seconds (default 1)
PING_ILOSS_INTERVAL - ( >0 ) the interval in seconds over which
incremental loss statistics are kept (iloss_sc, iloss_cs)
PING_GHOSTBUST - (0 or 1) whether or not to allow ghostbusting based on
the absence of ping responses from a client.
PING_GHOSTBUST_INTERVAL - ( >0) based on PING_GHOSTBUST and PING_FREQ,
the number of unanswered pings before ghostbusting a player.
GHOSTBUST_TIMER - ( >0 ) Timer setting to ghostbust a client using the
normal ghostbust routines.
MAX_POP - Set the maximum number of armies a planet can pop too.
ERROR_LEVEL - How much errors/debugging is sent to the ERROR file.
Only 1-3 are valid.
START_ARMIES - How many planets are initially put on a planet.
VECTOR - (0 or 1) Use vector torps instead of normal torps.
BASEPRACTICE - (0 or 1) Used to put server in basepractice mode.
TRANSWARP_ENABLE - (o or 1) Turn on transwarp capabilities.
TRANSWARP_SPEED - (0 or 1) How fast transwap is.
WHITELIST_INDIV - (0 or 1) Allow whitelist to overide :i messages
WHITELIST_TEAM - (0 or 1) Allow whitelist to overide :t messages
WHITELIST_ALL - (0 or 1) Allow whitelist to overide :a messages
LAME_REFIT - (0 or 1) If 1 use the historic ship refit criteria;
if 0 use the criteria the original developers intended
(>25% fuel, >25% shields, >75% hull). Defaults to
classical criteria.
LAME_BASE_REFIT - (0 or 1) Same as LAME_REFIT but exclusively
for starbases.
Dog-Fighter Specific Defines:
CONTESTSIZE - ( >0) Number of the contestants needed
before starting.
NUMMATCH - ( >0) Number of matches per contest.
SAVE_DOG_STAT - (0 or 1) Save the player stats?
(not implemented yet..).
In addition ship characteristics can be changed. The list of
characteristics that can be changed are:
TURNS, ACCS, TORPDAMAGE, PHASERDAMAGE, PHASERFUSE, PLASMADAMAGE,
TORPSPEED, TORPFUSE, TORPTURNS, PLASMASPEED, PLASMAFUSE, PLAMSATURNS,
MAXSPEED, REPAIR, MAXFUEL, TORPCOST, PLASMACOST, PHASERCOST,
DETCOST, WARPCOST, CLOAKCOST, RECHARGE, ACCINT, DECINT, MAXSHIELD,
MAXDAMAGE, MAXEGNTEMP, MAXWPNTEMP, EGNCOOLRATE, WPNCOOLRATE,
MAXARMIES, WIDTH, HEIGHT, TYPE, MASS, TRACTSTR, TRACTRNG.
To set ship characteristics you need to do something like the
following:
SHIP=1
BB PHASERCOST 945
AS TORPCOST 210
! MaxWpnTemp should ONLY be defined when non-chaos mode.
SB MAXWPNTEMP 1500
END
Unless SHIP is 1 the stats between SHIP and END will not be read in.
This example sets the NEWSHIP defines found at some servers. A '!'
is a comment.
3) .time file.
The time file is an array field that is 7 by 24. Each line is for the
days of the week and each character in the line is for the hours.
Line 0 is Sun. Line 6 is Sat. Char. 0 is 12am and char 23 is 11pm.
Allowable characters are:
X - Non-playable hours. The server is down.
C - Clue hour. The server is up and checking for clue.
Anything else is interpreted as playable.
4) .features file.
The .features file specifies the features specific to a client that
are allowed at a server. There are two formats for a line in the
features file. The client type is gotten from the RSA client type
field.
1) :
EX:
BerkRick Moo: SMARTMACRO NEWMACRO
This method doesn't check for the version of the client.
It is assumed that every version of this client will have
these features.
2) *confirm::
EX:
BerkRick Moo*confirm:2.00.15: WHY_DEAD
This method checks the version sent by the client to see if
the client is new enough to have this feature. The client
has to have a version >= to the version specified to have
the server send the message to the client. The Version field
in is in the format of: Version:PatchLevel.
5) .banned file, clue-bypass file.
These both use a similar format. The .banned file lists players that are
banned from the server. The .clue-bypass lists players that don't need
to go through clue checking.
Each line in these files should follow the format:
@
The domain field can contain the total domain such as
guzzler.ecst.csuchico.edu or can contain "*"s for all names such as
*.ecst.csuchico.edu would include all machines in the .ecst.csuchico.edu
domain.
Under Solaris 2.5.1 the wildcard "*" does not work. If wish to ban
all login attempts from rpi.edu, I must have something like this in my
.banned file:
leemy@rpi.edu
If I do a leemy@*.rpi.edu the ban does not work. If the "*" wildcard
method does not work try this way.
6) Robot configuration
The newbie and pre-t robots accept commands from players by
default. To prevent potential abuse this feature may be
deactivated by editing robotd/defs.h and changing the line:
#undef BOTS_IGNORE_COMMANDS
to
#define BOTS_IGNORE_COMMANDS
This change will require the bots to be re-compiled and
reinstalled.