525 lines
19 KiB
Plaintext
525 lines
19 KiB
Plaintext
This file details the effects of configuration parameters in /secure/include/config.h
|
|
|
|
#ifndef s_config_h
|
|
#define s_config_h
|
|
This means, "If the s_config_h parameter is not defined, define it now
|
|
and also define the stuff in this file."
|
|
|
|
|
|
#define DEFAULT_PROMPT "> "
|
|
Self-explanatory. Can be overridden per player with the "prompt" command.
|
|
|
|
|
|
#define HOST_IP "127.0.0.1"
|
|
Sometimes your mud's actual IP will be a fake internal address,
|
|
like 10.0.1.1. But this may be confusing under some circumstances,
|
|
and especially in the case of the hftp server, an address like this
|
|
will interfere with proper operation.
|
|
Normally the right and safe thing to do is leave this parameter
|
|
alone. A host IP definition of 127.0.0.1 lets the mud know it needs to
|
|
figure out its IP address the normal way. If you are running hftp, or
|
|
have some unusual situation where your actual IP address is not reachable
|
|
but some other one is, then this is where you'd put that external-facing
|
|
IP address.
|
|
General advice: leave this alone.
|
|
|
|
|
|
#define MUD_STATUS "mudlib development"
|
|
Self explanatory.
|
|
|
|
|
|
#define ADMIN_EMAIL "cratylus@comcast.net"
|
|
Self explanatory. Note that it is very important to have a valid
|
|
email defined here. Otherwise if the I3 router moves, or your mud
|
|
malfunctions and needs to be blacklisted, there is no way to contact
|
|
you to straighten things out.
|
|
|
|
|
|
#define DEBUGGER "cratylus"
|
|
The tc() sefun is a special kind of debugger for admin use. It
|
|
will send its messages to the one person specified here.
|
|
|
|
|
|
#define LOCAL_NEWS_PREFIX "nm"
|
|
Deprecated. Once used for an intermud news system that is
|
|
not currently supported.
|
|
|
|
|
|
#define MUD_IS_LOCKED 0
|
|
If this is a nonzero integer, only people in the allowed groups
|
|
are permitted to log in. By default, these groups are: SECURE, ASSIST,
|
|
ELDER, TEST.
|
|
|
|
|
|
#define AUTO_WIZ 0
|
|
If this is a 1, new users are given the option to
|
|
join your mud as either players or creators, as they choose. If
|
|
it is anything other than 0 or 1, new users are automatically
|
|
made creators, without being given the option to be players.
|
|
|
|
|
|
#define RESTRICTED_INTERMUD 0
|
|
If this is a nonzero integer, users must be added to the INTERMUD
|
|
group by an admin if you want them to be able to use intermud channels.
|
|
This can be done conveniently with the "groupmod" command.
|
|
|
|
|
|
#define DISABLE_INTERMUD 0
|
|
If this is a nonzero integer, no intermud functions will work. Your
|
|
intermud daemon will refuse to load, and you will therefore not be
|
|
connected to the intermud network. Note that disabling intermud here
|
|
disables both Intermud-3 and IMC2.
|
|
|
|
|
|
#define DISABLE_IMC2 0
|
|
IMC2 is an intermud protocol, like i3. Its packet syntax is
|
|
different enough that it needs its own handler and subsystem. To use
|
|
it, leave it enabled here and avail yourself of the imc2 command.
|
|
|
|
|
|
#define MINUTES_REBOOT_WARNING 20
|
|
Self explanatory.
|
|
|
|
|
|
#define TIME_TO_RESET 3600
|
|
The interval between calls to eventReset() in
|
|
the master daemon. 20000 means that every 5 hours, the master
|
|
daemon will call evetReset() in itself. This function will randomly
|
|
pick 25% of all loaded objects, and call reset() and clean_up() on them.
|
|
|
|
|
|
#define RESET_ALL 0
|
|
If this is a nonzero integer, eventReset() in MASTER_D will
|
|
eventReset() 100% of all loaded objects, not 25%. Not recommended
|
|
for large muds, as this can cause noticeable lag if there are
|
|
many loaded objects.
|
|
|
|
|
|
#define GMT_OFFSET -32000
|
|
A way to tinker with time settings, if you live in a strange
|
|
place. Recommendation: leave this alone.
|
|
|
|
|
|
#define LOCAL_TIME 1
|
|
If this is a non-zero integer, the mud will simply believe
|
|
whatever time the system thinks it is. Most OS'es can be trusted to
|
|
return the time you want, but if your server is in another time zone,
|
|
or your OS returns a GMT (aka UTC) offset rather than local time,
|
|
then you may need to set this to 0 and tinker with GMT_OFFSET and
|
|
EXTRA_TIME_OFFSET.
|
|
|
|
|
|
#define EXTRA_TIME_OFFSET 0
|
|
Another tool for tuning your local time. Set in hours, not seconds.
|
|
Play with offset settings at your own risk. The correct time of day on your
|
|
own system is your own responsibility.
|
|
|
|
|
|
#define MAX_LOG_SIZE 150000
|
|
The log rotation daemon uses this parameter as its trigger for
|
|
backing up logs. When log rotation check happens, approximately every
|
|
two hours (this is set in the events daemon, see the "events" command)
|
|
any log file the daemon is set to scan that is larger than this size
|
|
is renamed to something unique and archived.
|
|
|
|
|
|
#define MAX_NET_DEAD_TIME 1800
|
|
The maximum number of seconds allowed for a player to be "disconnected
|
|
but not having quit". Players whose link dies are normally moved to ROOM_FREEZER
|
|
where they stay until their link is re-established. If it doesn't happen in
|
|
the specified number of seconds, their player object if force-quit.
|
|
|
|
|
|
#define MIN_HISTORY_SIZE 20
|
|
#define MAX_HISTORY_SIZE 30
|
|
The number of lines stored in a player's command history buffer.
|
|
|
|
|
|
#define LOGON_TIMEOUT 360
|
|
If a user does not complete their login within this number of seconds,
|
|
their connection is dropped.
|
|
|
|
|
|
#define IDLE_TIMEOUT 3600
|
|
If a player is idle for this number of seconds, they are force-quit.
|
|
|
|
|
|
#define LINK_WAIT_PERIOD 1800
|
|
Unsupported. This is part of a multi-character play control system that
|
|
may or may not work in Dead Souls 2.
|
|
|
|
|
|
#define MAX_PASSWORD_TRIES 3
|
|
#define MIN_USER_NAME_LENGTH 2
|
|
#define MAX_USER_NAME_LENGTH 15
|
|
#define MAX_USER_CAP_NAME_LENGTH 20
|
|
Self explanatory. The "cap name" indicates the special name that a player may
|
|
have which includes special characters. This name is spacified on character
|
|
creation.
|
|
|
|
|
|
#define LOCKED_ACCESS_ALLOWED ({ "SECURE", "ASSIST", "ELDER", "TEST" })
|
|
Members of these user groups are allowed to log in when the mud is locked.
|
|
|
|
|
|
#define SUPPORTED_CLIENTS ({ "amcp", "amcp/1.1" })
|
|
UNSUPPORTED. This is a remote administration protocol that has not been made
|
|
to work on Dead Souls 2.
|
|
|
|
|
|
#define HOUR_LENGTH 1200
|
|
#define DAY_LENGTH 20
|
|
Mud-time definitions. Dead Souls hours and days are shorter than "real world"
|
|
hours and days. Here is where that is specified.
|
|
|
|
|
|
#define MAX_NEWBIE_LEVEL 3
|
|
Players below this level get special treatment. They gain access to
|
|
special newbie areas, can see in the dark, and understand all languages.
|
|
|
|
|
|
#define AUTOSAVE_TIME 450
|
|
Interval between automatic saves in users.
|
|
|
|
|
|
#define MORTAL_POSITIONS ({ "player", "high mortal", "ambassador" })
|
|
Unsupported. Part of a roles system that does not apply to Dead Souls 2
|
|
by default.
|
|
|
|
|
|
#define DEFAULT_GRAVITY 1.0
|
|
Affects the amount of stuff players can carry.
|
|
|
|
|
|
#define DEFAULT_ITEM_MESSAGE "You do not see that here."
|
|
Self explanatory.
|
|
|
|
|
|
#define RESET_INTERMUD 0
|
|
If this is a nonzer integer, your intermud data cache will be wiped on reboot.
|
|
|
|
|
|
#define ENGLISH_ONLY 0
|
|
Forces the use of English only for users.
|
|
|
|
|
|
#define HUMANS_ONLY 0
|
|
Prevents new users from picking a race other than human.
|
|
|
|
|
|
#define PINGING_MUDS ({})
|
|
Defines the muds used by the ping daemon for its periodic i3
|
|
connection status check. If empty, you only ping yourself. It is
|
|
recommended to leave it empty.
|
|
|
|
|
|
#define PING_INTERVAL 290
|
|
The number of seconds between automated i3 pings.
|
|
|
|
|
|
#define ENABLE_ENCUMBRANCE 0
|
|
If this is a nonzero integer, players will find it near-impossible
|
|
to engage in successful combat if they're carring stuff. Anything that is
|
|
not worn or wielded creates a major obstacle to fighting.
|
|
|
|
|
|
#define GLOBAL_MONITOR 0
|
|
If this is set to 1, all users are automatically snooped when they
|
|
connect and their sessions are logged in /secure/adm.
|
|
If this is set to 2, only non-admin users are logged this way.
|
|
|
|
|
|
#define PLAYER_KILL 0
|
|
This must be set to a nonzero integer if playerkilling zones are
|
|
to work in the mud.
|
|
|
|
|
|
#define NPC_CATCH_TELL_DEBUG 0
|
|
If a nonzero integer, then anything seen or heard by any NPC is
|
|
echoed to /domains/default/room/catchtell, along with some debugging
|
|
info. Recommendation: do not use this. It is noisier than you expect,
|
|
will tend to lag a busy mud, and is really for debugging purposes only.
|
|
|
|
|
|
#define SAME_IP_MAX 4
|
|
The maximum number of connections permitted from an IP. IP's
|
|
from which an admin has previously logged in are excluded from this,
|
|
and IP's to be excluded from this can be specified in /secure/cfg/ip_unrestrict.cfg
|
|
(by adding the ip's on their own lines).
|
|
|
|
|
|
#define COMPAT_MODE 1
|
|
This enables the lib to use defines that translate old code from
|
|
TMI-2 and Nightmare 3 (among others) into usable DS2 code on the fly.
|
|
See /secure/include/compat.h and /secure/sefun/legacy.c
|
|
|
|
|
|
#define RETAIN_ON_QUIT 1
|
|
If this is a nonzero integer, when a character quits, her inventory is
|
|
saved, and it is restored to her when she logs back in. If this is zero,
|
|
then when a character quits, her inventory is moved to her environment, and
|
|
it is not restored to her when she logs back in.
|
|
Unique items are moved to the quitter's environment regardless of
|
|
what this is set to.
|
|
|
|
|
|
#define MAX_COMMANDS_PER_SECOND 10
|
|
Defines for non-admins the maximum number of commands allowed per second.
|
|
This avoids both player scripting foolishness, and certain errors
|
|
that can occur when "command stacking" hundreds of commands per second that can
|
|
ruin things for everyone.
|
|
|
|
|
|
#define DEFAULT_PARSING 1
|
|
If this is a nonzero integer, lib-based extension to the driver parser
|
|
will attempt re-parse ambiguous commands, making things like "drop book"
|
|
parse like "drop a book" if you have more than one. This adds some overhead
|
|
to each ambiguous command that needs to be reparsed, so disable it if you
|
|
are having performance problems.
|
|
|
|
|
|
#define CALL_OUT_LOGGING 0
|
|
This will log the use of the call_out() efun by objects outside the
|
|
/daemon and /secure filesystems. Recommendation: do not use this. While it
|
|
has been fixed so it does not break things, this is strictly a debugging
|
|
tool to ferret out errors, not a "normal use" logger.
|
|
|
|
|
|
#define EVENTS_LOGGING 1
|
|
A nonzero integer here will enable the logging of events initiated by the
|
|
events daemon.
|
|
|
|
|
|
#define DISABLE_REBOOTS 0
|
|
A nonzero integer here will cause your mud's periodic reboots not to
|
|
occur.
|
|
|
|
|
|
#define BARE_EXITS 1
|
|
A nonzero integer here allows the use of exits such that typing
|
|
"house" is possible, rather than "go house" or "enter house". This adds
|
|
some overhead to every command, so disable it if you are having performance
|
|
problems.
|
|
|
|
|
|
#define COMMAND_MATCHING 1
|
|
A nonzero integer here allows the use of "shortest unique command matching".
|
|
This means you might, for example, be able to "gi book to knight" rather than
|
|
"give book to knight". This adds some overhead to every command, so disable it if
|
|
you are having performance problems.
|
|
|
|
|
|
#define OBJECT_MATCHING 1
|
|
A nonzero integer here allows the use of "shortest unique object matching".
|
|
This means you might, for example, be able to "give bo to kni" rather than
|
|
"give book to knight". This adds some overhead to every command, so disable it if
|
|
you are having performance problems.
|
|
|
|
|
|
#define LIVEUPGRADE_SERVER "Dead Souls"
|
|
Deprecated. Specifies the mud to use for OOB liveupgrades. OOB liveupgrades
|
|
are no longer supported and have been replaced by the faster and more secure
|
|
web based liveupgrade system.
|
|
|
|
|
|
#define CARRIAGE_RETURN "\r"
|
|
In some cases, this pesky little character has to be wiped from files without
|
|
wiping the thing that specifies what character to wipe. This define helps avoid
|
|
problems when a file has to clean itself of this character. Don't change this.
|
|
|
|
|
|
#define OLD_STYLE_PLURALS 1
|
|
A nonzero integer here allows you to use stuff like "book 2" or "2.book"
|
|
rather than "second book" in a command. This adds some overhead to every command,
|
|
so disable it if you are having performance problems.
|
|
|
|
|
|
#define NM_STYLE_EXITS 0
|
|
A nonzero integer here enables the old "obvious exits" behavior, which was to
|
|
display them over the long desc in the form: [n, s, enter lodge]
|
|
Otherwise, they display below the long desc, in the form:
|
|
Obvious exits: north, south, enter lodge
|
|
|
|
|
|
#define WEB_SOURCE_IP "204.209.44.12"
|
|
Specifies the ip to use during liveupgrades.
|
|
|
|
|
|
#define WEB_SOURCE_NAME "lpmuds.net"
|
|
Specifies the website used for liveupgrades. This is often
|
|
necessary if the target webserver uses virtual hosts.
|
|
|
|
|
|
#define DESTRUCT_LOGGING 0
|
|
If set to a nonzero integer, this enables the logging of
|
|
the destruct() efun being called on objects. You are strongly
|
|
advised not to enable this except in the most dire cases of
|
|
things breaking.
|
|
|
|
|
|
#define ROUTER_NAME "Alpha"
|
|
#define IRN_PASSWORD "Alpha"
|
|
#define IRN_PASSWORD1 "Bravo"
|
|
#define IRN_PASSWORD2 "Charlie"
|
|
#define IRN_PASSWORD3 "Delta"
|
|
#define ROUTER_TESTING 1
|
|
Definitions specific to running an Intermud-3 router as
|
|
a node in an IRN (Inter Router Network). It is a good idea to
|
|
leave these settings alone unless you are 100% certain you
|
|
need to change them.
|
|
|
|
|
|
#define SEFUN_PLURALIZE 0
|
|
Indicates whether you wish to override the driver's
|
|
built-in pluralize() efun with the sefun of the same name.
|
|
|
|
|
|
#define LOG_REMOTE_CHANS 0
|
|
Controls the logging of remote (i.e. intermud) channels. Intermud
|
|
channels can be extremely spammy and if you are paying for diskspace
|
|
on a commercial host, logging them can lead to running out of room.
|
|
|
|
|
|
#define LOG_LOCAL_CHANS 1
|
|
Controls the logging of channels local to your mud.
|
|
|
|
|
|
#define IMC2_CLIENT_PW "clientpass"
|
|
#define IMC2_SERVER_PW "serverpass"
|
|
Passwords for the IMC2 connection. These are automatically
|
|
changed into random strings when you first install your mud. If
|
|
you upgrade your mud, or reinstall, make sure you keep a copy of
|
|
the old randomized passwords and put them in the new config.h.
|
|
|
|
|
|
#define ENABLE_CGI 0
|
|
Determines whether the built-in webserver will accept CGI
|
|
requests. This is required for CreWeb to work. Note that while
|
|
CreWeb attempts to avoid obvious security problems, maintaining
|
|
your mud's security is your responsibility.
|
|
|
|
|
|
#define WWW_DIR_LIST 0
|
|
Determines whether directory listings are allowed on the
|
|
built-in webserver. This is required for CreWeb to work. See the
|
|
above note regarding security.
|
|
|
|
|
|
#define ENABLE_CREWEB 0
|
|
Self explanatory.
|
|
|
|
|
|
#define F_TERMINAL_COLOR 1
|
|
Old workaround to a strange FluffOS issue. May no longer
|
|
be needed, but I can't be bothered to check.
|
|
|
|
|
|
#define MAX_CALL_OUTS 750
|
|
The call_out() efun is a way to schedule events. In MudOS this
|
|
efun's abuse could be the cause of grief, as overall mud performance
|
|
could be severely impacted. On FluffOS this is less of a concern, but
|
|
runaway callouts are still a threat to your mud's availability. The
|
|
number defined here is the threshold at which the mud will stop
|
|
accepting new callouts from unprivileged objects, such as things
|
|
in /realms/. Privileged, lib, and domain objects can still issue
|
|
callouts even if this threshold is reached.
|
|
|
|
|
|
#define REQUIRE_QUESTING 1
|
|
By default, Dead Souls muds require players not just to have
|
|
enough XP to advance, but also to have been awarded quest points as
|
|
specified in PLAYERS_D. This define controls whether that
|
|
requirement is in force.
|
|
|
|
|
|
#define AUTO_ADVANCE 1
|
|
Older versions of Dead Souls required that you visit a specific
|
|
NPC in the Adventurers' Hall and request advancement. If this define
|
|
is set to a nonzero integer, players will automatically advance when
|
|
they achieve the XP/QP requirement for their next level as specified
|
|
in PLAYERS_D, without having to go see Dirk.
|
|
|
|
|
|
#define MAX_INVENTORY_SIZE 2048
|
|
If an object's inventory reaches this number of items, it will
|
|
stop accepting additional objects. This is intended to prevent the
|
|
accidental clogging of a mud through careless recursive coding.
|
|
|
|
|
|
#define MAX_ATTACKS_PER_HB 40
|
|
If your creators have enabled godmode and have jacked up their
|
|
stats and skills to astronomical levels and then try to PK each other,
|
|
this define will prevent your mud from locking up as a result of
|
|
their foolishness.
|
|
|
|
|
|
#define MEMUSE_SOFT_LIMIT 0
|
|
If the mud's memory use hits this limit, it will enter a
|
|
more aggressive posture regarding resets, garbage, and environmentless
|
|
objects. Non-privileged objects will be restricted from cloning
|
|
new objects until memory use is again below this limit.
|
|
IMPORTANT NOTE: The mud's memory use is NOT the same thing as
|
|
the memory allocated by the operating system. The actual amount
|
|
of memory in use is usually much much lower than the memory
|
|
allocation indicated in programs such as top. If you're going to
|
|
experiment with this, start with a low number, such as 10000000
|
|
(10 million bytes, aka 10 megs). 0 here disables the limit.
|
|
|
|
|
|
#define MEMUSE_HARD_LIMIT 0
|
|
If the mud's memory use hits this limit, it will try to
|
|
throw as much junk overboard as possible. If the memory use is
|
|
still above this limit after that attempt, the mud will then
|
|
schedule a reboot to occur within one minute. 0 here disables
|
|
the limit.
|
|
|
|
|
|
#define MAX_USERS 0
|
|
LIB_CONNECT automatically determines how many players
|
|
your mud is theoretically able to handle. Based on this,
|
|
it establishes a maximum limit of players logged in simultaneously.
|
|
In some cases this estimation is overly generous, and it may
|
|
be necessary to limit maximum players to what your server
|
|
can actually handle, not what it can theoretically do. The
|
|
MAX_USERS define overrides the LIB_CONNECT calculated maximum.
|
|
Setting it to 0 allows LIB_CONNECT to figure the max out on its own.
|
|
Note that users in the LOCKED_ACCESS_ALLOWED groups defined
|
|
above are allowed to log in despite the player cap.
|
|
To find out the current limit:
|
|
eval return LIB_CONNECT->GetMaxPlayers()
|
|
|
|
|
|
#define MIN_PERF 2000
|
|
Some fancy stuff, like object matching and overhead mapping,
|
|
require your mud server to have a minimum performance score for the
|
|
feature to work properly. This is where that score is set. The
|
|
closer to 0, the faster the computer. 2000 is a rather slow computer.
|
|
|
|
|
|
#define MINIMAP 1
|
|
Whether players can have the minimap show up as part of their
|
|
room description data.
|
|
|
|
|
|
#define WIZMAP 1
|
|
Whether creators can have the wizmap show up as part of their
|
|
room description data.
|
|
|
|
|
|
#define GRID 1
|
|
Whether the mud grid system is enabled for your mud. This will
|
|
be overridden by the "minimum performance" score. If your computer
|
|
is too slow, the grid is disabled regardless of what this setting is.
|
|
|
|
|
|
#define ENABLE_INSTANCES 0
|
|
If 1, the mud will assume it is an instance, and will apply
|
|
special naming conventions to savefiles. Your "dev instance"
|
|
should have this set to 0. Your "player instance" should have this
|
|
set to 1. If you don't know what this stuff means, LEAVE IT AT 0.
|
|
For more info: help instances
|
|
|
|
|
|
#endif /* s_config_h */
|
|
End configuration.
|