# configuration file for PennMUSH
#
# The directives in this file control the behavior of your MUSH
# If you change any of them while your MUSH is running, you can
# cause the MUSH to re-read this file by sending it a SIGHUP
# signal. Typically, one does this by using 'ps' to determine the
# MUSH's process id#, and then issuing a: kill -1 pid#
# command.
####
#### ESSENTIALS
####
# name of your MUSH. 
#_Please_ change this. 
# You _MUST_ if you're using RWHO.
mud_name TinyMUSH
# the port it's running on.
port 4201
# Should we listen only on a specific IP address? If your host has
# multiple IP addresses, put the ip address to listen on here
# Example: ip_addr 128.32.243.78
# Otherwise, just leave it blank.
ip_addr
# Should the MUSH attempt to resolve IP numbers to hostnames?
# If yes, you'll see hostnames on the wizard WHO. If no, IP numbers.
# No makes sense if you're running PennMUSH at home and don't have
# a DNS server you can access.
use_dns yes
# Databases
# These are, respectively, where to read a database, where to
# write a database, where to put a panic dump (performed if
# the MUSH determines it's going to crash, where to put MUSH mail,
# and where to keep information about the chat system.
# Filenames are relative to the game/ directory.
#
# Do NOT put compression suffixes at the end of the files.
# That's handled below
#
input_database data/indb
output_database data/outdb
crash_database data/PANIC.db
mail_database data/maildb
chat_database data/chatdb
# Database compression
# When your databases are dumped, they can be dumped in a compressed
# format to save disk space, or uncompressed for speed.
# To use a compression program, you must know the name of the
# program that compresses, the name of the program that uncompresses,
# and the suffix that the compression program adds.
#
# Most people can just use one of the following:
#
# Use these 3 lines for no compression. Required on win32.
#compress_program
#uncompress_program
#compress_suffix
#
# Use these 3 lines for gzip compression
#compress_program gzip
#uncompress_program gunzip
#compress_suffix .gz
#
# Use these 3 lines for Unix compress compression
#compress_program compress
#uncompress_program uncompress
#compress_suffix .Z
#
compress_program compress
uncompress_program uncompress
compress_suffix .Z
# Room where new players are created.
player_start 0
# The master room. Exits here are global, as are commands on
# objects here. This only is used if globals is set to "yes".
master_room 2
# The base room. Any room that can be reached from this room
# through exits is considered a 'connected room'.
# See also: exits_connect_rooms
base_room 0
###
### Limits, costs, and other constants
###
# name of the monetary units
money_singular Penny
money_plural Pennies
# Should there be a limit on how long players can be idle?
# If you want one, set idle_timeout to the 
# number of minutes a player may idle before getting disconnected.
# If you don't, set it to 0.
idle_timeout 0
# Should there be a limit on the number of logins the MUSH
# can accept? If your operating system has a limited number of
# file descriptors per process, you should set this to 
# that number - 8. If not, or if you like to live dangerously,
# set this to 0.
max_logins 120
# How much MUSH money do players get when they're created?
starting_money 150
# How much MUSH money do players get each day they log in?
paycheck 50
# If quotas are enforced, how much players get by default
starting_quota 20
# number of commands a player can have queued. Prevents runaway machines
# from getting out of hand.
player_queue_limit 100
# the number of commands run from the queue when there is no net activity
queue_chunk 3
# the number of commands run from the queue when there is net activity
active_queue_chunk 1
# the maximum level of recursion allowed in functions
function_recursion_limit 50
# the maximum number of functions that can be invoked
function_invocation_limit 2500
# How many channels total can be created?
# This doesn't allocate memory, it just sets a maximum.
max_channels 200
# How many channels can each non-admin create? Set this to some number
# higher than zero to allow mortals to create channels.
max_player_chans 0
# What's the maximum number of levels of parenting allowed
max_parents 10
# How much does it cost a mortal to create a channel?
chan_cost 1000
# How likely should it be that noisy whispers are noticed by other
# players in the room? (Others see: John whispers to Mary.)
# Use a number from 0 to 100
whisper_loudness	100
# the highest allowable dbref -- you can't build more than this
# many objects. if you don't want such a limit, leave this set
# to 0.
max_dbref 0
# If you kill someone, you can spend up to 100 coins; the chance
# of killing them is the number of coins you spend. What's the
# minimum number of coins that must be spent, and the default
# number if no number is given?
kill_min_cost 10
kill_default_cost 10
# How much to various commands cost:
find_cost 100
page_cost 0
# How many objects are equal to 1 quota, if quotas are used
quota_cost 1
# How much deposit is required to queue a command?
queue_cost 10
# One out of how many commands that are queued will cost the
# player a coin?
queue_loss 63
# What does it cost to build various things?
room_cost 10
object_cost 10
link_cost 1
exit_cost 1
# If you've got USE_WARNINGS defined, set this to the number
# of seconds between MUSH-wide topology
# warning checks. Default is 3600 (1 hour). If you set this to 0,
# timed MUSH-wide checks will be disabled.
warn_interval 3600
# The password that must be given to do an @log/wipe. You must also
# be God, of course. CHANGE THIS.
log_wipe_passwd zap!
###
### Dump stuff
###
# How often should the database be dumped, in seconds?
# 3600 is once an hour, and probably the most frequent you'd ever want.
# On a large MUSH, consider at most once every 3-6 hours.
# This cannot be a multiple of any of the timer.c parameters
# (so keep it an even number of hours).
dump_interval 3600
# should I fork a concurrent process to do database dumps?
# If I do, your memory requirements will double during the dump.
# If I don't, the MUSH will pause while it dumps.
# If you're low on memory, don't do this.
# If you're on Win32, don't do this; fork() is not defined.
forking_dump yes
# If you're not forking, you get a bunch of messages that you
# can set to warn players when the dump is 5 minutes away,
# 1 minute away, in progress, and finished. You can 
# comment out whatever messages you don't want.
dump_warning_5min GAME: Database dump in 5 minutes.
dump_warning_1min GAME: Database dump in 1 minute.
dump_message GAME: Dumping database. Game may freeze for a few minutes.
dump_complete GAME: Dump complete. Time in.
### 
### Filenames
###
# Text files shown on connection, as message of the day,
# as wizard message of the day, on quit, to newly created players,
# when logins are disabled, when player creation is disabled,
# and when a guest logs in.
connect_file txt/connect.txt
motd_file txt/motd.txt
wizmotd_file txt/wizmotd.txt
quit_file txt/quit.txt
newuser_file txt/newuser.txt
down_file txt/down.txt
register_create_file txt/register.txt
guest_file txt/guest.txt
# The equivalent files in html, shown to Pueblo clients.
connect_html_file txt/connect.html
motd_html_file txt/motd.html
wizmotd_html_file txt/wizmotd.html
quit_html_file txt/quit.html
newuser_html_file txt/newuser.html
down_html_file txt/down.html
register_create_html_file txt/register.html
guest_html_file txt/guest.html
# the big text files and corresponding index files
# comment out any that you don't want (except help and news)
#events_file txt/events.txt
#events_index txt/events.idx
#index_file txt/index.txt
#index_index txt/index.idx
#rules_file txt/rules.txt
#rules_index txt/rules.idx
help_file txt/help.txt
help_index txt/help.idx
news_file txt/news.txt
news_index txt/news.idx
### Config directives for RWHO. 
### If you want to send connection/disconnection information to a
### mudwho server, you must set rwho to "yes" and fill in the information
### about the server. You'll have to ask the server's administrator
### for an rwho password.
rwho no
rwho_dump_interval 241
rwho_host littlewood.math.okstate.edu
rwho_info_port 6889
rwho_password getyours
### Config directive for IDENT.
### If you want to do ident (RFC1143) looksup, set use_ident to "yes"
### and select an ident_timeout to determine how long the MUSH
### should wait for a response, in seconds. If you're using
### INFO_SLAVE (in options.h), this is how long the info_slave waits.
use_ident yes
ident_timeout 5
###
### Logging
###
# log all commands. Makes big, big command.log files. Use only for
# debugging, generally.
log_commands no
# log commands which produce "Huh?"
log_huhs no
# log forces done by wizards
log_forces yes
# log wizwalls
log_walls no
###
### Logins
###
# Support the pueblo MUSH client and allow html to be sent to it
pueblo no
# allow non-wizard/royalty logins
logins yes
# allow guest logins
guests yes
# allow players to create/register characters at the login screen
# If you turn this off, neither "create" nor "register" will work.
# Use access.cnf if you want to disable creation for specific sites
# or disable creation but enable registration for everyone.
player_creation yes
###
### Master Room and @aconnect/disconnect
###
# enable global exits and commands?
globals yes
# check zones and the master room for aconnect/adisconnect?
global_connects yes
# trigger @aconnect/@adisconnect in the room?
room_connects no
###
### Options affecting commands and functions
### (See also restrict_command to restrict command use)
###
# prevent computationally expensive commands
daytime no
# restrict haspower() to see_all players?
haspower_restricted no
# prevent objects from evaluating ufuns on more privileged objects. [++]
safer_ufun yes
# use @recycle instead of @destroy, because @dest is easy to confuse
# with @desc. [+]
hate_dest no
# default whisper to whisper/noisy instead of whisper/silent
noisy_whisper no
# is possessive get (get players's object) allowed?
possessive_get yes
# what if the player is disconnected?
possessive_get_d no
# SAFE absolutely prevents destruction, even with @nuke
really_safe yes
# When a player is nuked, his SAFE objects are @chowned to God.
# If this is set to "yes", his non-safe objects are destroyed
# If this is set to "no", they are chowned to God
destroy_possessions yes
# Can we @link to an object?
link_to_object yes
# Keep queue limits on a per-owner rather than pwer-object basis?
# That is, is an object runaway when its owner's total queue is too
# high, rather than when the object's queue is too high?
owner_queues no
# Should DARK wizards not trigger AENTER/ALEAVE when they move?
wiz_noaenter no
# require builder bits in order to build?
restricted_building no
# if builder bits are required, allow people to @create objects
# without them anyway?
free_objects no
# should say/pose by a DARK wizard be anonymous ('Someone says...')?
full_invis no
# allow players to located each other with @whereis and loc()?
player_locate yes
###
### TinyMUSH compatibility
###
# Should we treat a missing number as 0 in things like add(3,)?
# For TinyMUSH compatibility, the answer is 'no'.
null_eq_zero no
# In PennMUSH, strings and db#s larger than #0 have traditionally
# been considered true (1) in boolean functions like and(), or(), etc.
# In TinyMUSH, strings and db#s evaluate as false (0)
# Should we emulate TinyMUSH?
tiny_booleans no
# TinyMUSH's trim function is: 
#   trim(<string> [,<trim style> [,<trim character>]])
# PennMUSH's trim function has been:
#    trim(<string>[,<character to trim>[,<trim style>]])
# Should we emulate TinyMUSH? [+ for new MUSHes]
tiny_trim_fun no
# show attributes in TinyMUSH format (FOO(#4v): test) rather than
# PennMUSH format (FOO [#4v]: test)?
tiny_attrs no
# In Tiny, strings used in math expressions evaluate to 0,
# so eq(asdfa,0) = 1, gt(asdf,0) = 0, etc.
# In Penn, using strings where numbers should be is traditionally an
# error (returning #-1 ARGUMENT MUST BE NUMBER or similar)
# Do you want the TinyMUSH behavior?
tiny_math no
# should @pemit default to @pemit/silent, like TinyMUSH?
silent_pemit no
###
### Attributes
###
# enable the adestroy attribute, triggered when an object is nuked?
adestroy no
# enable the amail attribute for admin, triggered when they receive
# @mail? This does no mail loop checking. [-]
amail no
# does @listen work on players?
player_listen yes
# does @ahear work on players? If player_listen is yes, and
# player_ahear is no, sound outside the player can be heard by her
# inventory, but her @ahear isn't executed.
player_ahear yes
###
### Cosmetic stuff
###
# show room/object/player names in bold for ansi players?
ansi_names yes
# should ljust(), rjust(), center(), and table() ignore ansi when
# figuring out how to justify a string?
ansi_justify yes
# show exit lists with commas (a, b, and c)?
comma_exit_list no
# count hidden players when WHO reports total connected?
count_all no
# are rooms with any exits considered connected, and thus not required
# to have the FLOATING flag set on them?
exits_connect_rooms no
# Prefixes for various broadcast messages
wizwall_prefix Broadcast:
rwall_prefix Admin:
wall_prefix Announcement:
# can players have names with spaces in them?
player_name_spaces no
# report time in 24-hour format?
military_time yes
# show expanded flag name list when you examine an object?
flags_on_examine yes
# show visual attributes when you examine an object you don't own?
# (like examine/full in TinyMUSH)
ex_public_attribs yes
# What should page a b c = message do?
# If blind_page is yes, page defaults to page/blind (a,b,c each get separate
# pages with no evidence that it was a multipage). If blind_page is no,
# page defaults to page/list (a single page goes to a,b,c and they can
# see that they all received it.
blind_page yes
# should NOSPOOF notification include the dbref of the spoofer
# as well as the name?
paranoid_nospoof no
###
### Default flags for newly created stuff
###
# -- Default flags for exits
# Uncommenting this will cause the exit default to be DARK (like in TinyMUD):
#   no exits show up on the "Obvious exits" list.
# exit_flags dark
# Uncommenting this will cause all exits to be TRANSPARENT by default
#   (if you look through them, you will see the description of the next room)
# exit_flags transparent
# -- Default flags for rooms
# Uncommenting this will cause all rooms to be TRANSPARENT by default.
#   Each obvious exit in a transparent room is displayed on a line by
#   itself, in the format:
#   <Exit name> leads to <Destination name>
#   instead of having all exits strung out in one row.
# room_flags transparent
# Objects which are NO_COMMAND will not be checked for $commands. 
#   Making this a default may speed up your server somewhat. This is
#   definitely a good idea for rooms and players, and, depending on
#   the compostion of your database, probably a good idea for things.
room_flags no_command
# -- Default flags for players
# Players who are ENTER_OK can be given stuff.
player_flags enter_ok
# Players who are INHERIT allow all their objects to control them.
# player_flags inherit
# Players who are ANSI see attribute names hilighted.
player_flags ansi
# See the explanation for rooms and no_command.
player_flags no_command
# -- Default flags for things
# For example, you can't see through OPAQUE things.
# thing_flags opaque
# See the explanation for rooms and no_command.
thing_flags no_command
###
### Restrictions on usage
###
#
# Commands to restrict
# Syntax: restrict_command <command> <restriction>
# <restriction> is *one* of:
#	nobody		Totally disable the command
#	nogagged	Gagged players can't use it
#	noguest		Guests can't use it
#	admin		Must be roy or wiz to use it
#	wizard		Must be wiz to use it
#	god		Must be god to use it
# You can use multiple restrictions on the same command to restrict
# to, for example, nongagged nonguests, by using more than one
# restrict_command line for that command. 
# Don't let guests mess with the database
# (This replaces the HARSH_GUEST compile-time define)
# The "ATTRIB_SET" command controls the setting of attributes with
#  @attr obj=value or &attr obj=value
restrict_command @set noguest
restrict_command ATTRIB_SET noguest
restrict_command @chown noguest
restrict_command @chzone noguest
restrict_command @cpattr noguest
restrict_command @mvattr noguest
restrict_command @edit noguest
restrict_command @gedit noguest
restrict_command @parent noguest
restrict_command @wipe noguest
restrict_command @unlink noguest
restrict_command @link noguest
restrict_command @lock noguest
restrict_command @unlock noguest
# Read is a synonym for look unless you disable it
restrict_command read nobody
# Don't let players rob each other
restrict_command rob nobody
# Don't use @toad. Better to @boot and @nuke
restrict_command @toad nobody
# Don't allow kill (slay still works)
#restrict_command kill nobody