# 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. mud_name PennMUSH # The web address of your MUSH. If this is nonempty, people attemping to # connect to your MUSH with a web browser will be redirected to this # URL. Set to the address of a web client, or your MUSH's website. # mud_url http://www.pennmush.org mud_url # If you want GET/POST/etc support for your MUSH, set http_handler to the # dbref of a Player object. # # When the MUSH receives an HTTP request, it checks the player object for # an HTTP`<METHODNAME>, and if it exists, runs it as an inline command. # Be warned - if HTTP`?? queues anything, it will NOT be sent to the client - # everything should be run via /inline # # See also, "help http_handler" and "help @respond". http_handler # How many HTTP requests do you want to handle every second? # Setting this to 0 (or negative) disables HTTP. Defaults to 3, # as HTTP is also disabled unless http_handler is set. http_per_second 3 # The port it's running on. See also ssl_port, later. 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 # If you want to force only IPv4 addresses but don't want to limit to # just one, use '0.0.0.0'. Similiarly, to force IPv6, use '::'. # 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. MacOS 7/8/9 should use 'no' # Changing this while using info_slave requires a @shutdown/reboot # to make it take effect. 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 and MacOS 7/8/9. #compress_program #uncompress_program #compress_suffix # # Use these 3 lines for gzip compression # Note: If the mush is built with zlib and you use plain 'gzip' and # 'gunzip', the library will be used instead of external programs. If # you want to force using the programs, just specify the full path to # them; e.g. /usr/bin/gzip #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 # # Use these 3 lines for bzip2 compression #compress_program bzip2 #uncompress_program bunzip2 #compress_suffix .bz2 # compress_program gzip uncompress_program gunzip compress_suffix .gz # Room where new players are created. player_start 0 # The master room. Exits here are global, as are commands on # objects here. 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 # Event handler. This dbref receives all events generated by # PennMUSH. See 'help events' for this. event_handler -1 # The ancestor room. This dbref serves as an 'ultimate parent' to # all rooms that aren't set ORPHAN. Set to -1 to disable. ancestor_room -1 # The ancestor exit. This dbref serves as an 'ultimate parent' to # all exits that aren't set ORPHAN. Set to -1 to disable. ancestor_exit -1 # The ancestor thing. This dbref serves as an 'ultimate parent' to # all things that aren't set ORPHAN. Set to -1 to disable. ancestor_thing -1 # The ancestor player. This dbref serves as an 'ultimate parent' to # all players that aren't set ORPHAN. Set to -1 to disable. ancestor_player -1 # The default home. This is the room used when an object becomes # homeless (usually due to its home getting destroyed). It's also # the place where things get moved to if their location gets # unsalvageably corrupted. default_home 0 # What's the filename of the @sitelock file, that controls # who can connect and who can't access_file access.cnf # Where are the names you want to ban players from # creation/rename? A good idea to start with are swear words, # and featured names like 'Luke', 'Merlin', 'Gandalf', 'Picard', # 'Lessa', 'Dracula', 'Hercules', 'Scooby', 'Nancy Drew', etc, # depending on what type of MUSH you are running names_file names.cnf ### ### Attribute (chunk) cache ### ### PennMUSH can swap rarely-referenced attribute text out to a disk ### file, and cache often-used attribute text in memory. This ### can result in substantial (typically 30-50%) savings ### in process memory use, at the cost of a very small performance hit. ### You can control the size of memory cache (or set it so large ### that nothing is ever swapped to disk), as well as several less ### important parameters here. ### # True to use the attribute cache use_chunk_system yes # The file to store the attribute data in, when not in memory. # This is relative to the game/ directory. chunk_swap_file data/chunkswap # The amount of memory allowed for the attribute cache, in bytes. # The actual amount used will be a multiple of 64K slightly less # the specified amount. You must give it at least 132000 bytes. # If you want to use an 'infinite' cache, try setting this # to 2000000000; you'll lose the memory benefits, but you'll still # gain some locality benefits and overhead savings. chunk_cache_memory 1000000 # The amount of space, in kibibytes, to initially allocate for the # swap file. The swap file may grow bigger than this figure, but won't # shrink to less. Only works on some OSes; ignored on those that don't # support the posix_fallocate() system call. # For best results, set it to a larger value than the size of your # swap file is after the game has been running for a while. How much # larger depends on how fast the database is growing. chunk_swap_initial_size 2048 # The number of attributes that may be moved at one time, once per # second. The higher the value, the faster memory gets defragmented, # but at a greater CPU cost. chunk_migrate 150 ### ### In-memory attribute compression ### # The compression method used on attribute text. # Options: None, for no compression (But most memory use) # huffman (Balance between space and compression speed) # word (Faster decompression, more memory) attr_compression none ### ### SSL support ### # The port to listen on for SSL connections. This must be an unused # port other than the standard connection port. To disable SSL # connections, leave this set to 0. ssl_port 0 # The ip address to bind to for the SSL port, if one is specified. # If your host has multiple IP addresses, put the ip address to # listen on here. Otherwise, leave it blank to listen on all # addresses if SSL is in use. ssl_ip_addr # The file containing the MUSH server's certificate and private key, # concatenated together, and with no password on the private key. # Obviously, this file should only be readable by the MUSH account # owner. If this is commented out, the server will not present a # certificate, so clients that attempt to authenticate the server # will fail. ssl_private_key_file server-key.crt # A file containing one or more certificates of certifying authorities # that the server should trust to certify clients who connect and # present certificates. ssl_ca_file /etc/ssl/certs/ca-certificates.crt # A directory containing one or more certificates of certifying # authorities that the server should trust to certify clients who # connect and present certificates. If both this and ssl_ca_file are # commented out or blank, the server will not attempt client # authentication. ssl_ca_dir /etc/ssl/certs # Are clients *required* to present a valid certificate in order to # make an SSL connection? If true, ssl_ca_file needs to be set too. ssl_require_client_cert no # Filename to use as a unix-domain socket for talking to the ssl # slave socket_file data/netmush.sock ### ### Websocket support ### # Enable websockets use_ws true # path used in HTTP requests for a websocket connection to the game. ws_url /wsclient ### ### Limits, costs, and other constants ### # name of the monetary units. Uncomment before changing. By leaving it # commented, the translated value will be used. # OPTIONAL # money_singular Penny # money_plural Pennies # How many times in a 10 minute period should a given IP address be # allowed to attempt to log in before being rejected? # If you want this to really be successful, you should probably also # block Tor exit nodes at the firewall level: # http://doc.norang.ca/iptables.html#sec-3 # Set to 0 for unlimited. connect_fail_limit 10 # 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 want a timeout, set it to 0. idle_timeout 0m # Should there be a limit on how long connections at the connect screen # (without an associated player) can be idle? # If you want one, set unconnected_idle_timeout to the # number of MINUTES # a connection may idle before getting disconnected. # If you don't want a timeout, set it to 0. unconnected_idle_timeout 5m # Many common home network routers will drop a connection if there's # been no activity for a few minutes; they tend to assume the web is # the internet, and don't deal well with persistant connections like # mushes use. This option will make the server automatically send a # TCP-level 'Are you still there?' query every few minutes to keep the # connection active. # NOTE: This doesn't work on all OSes, but does on the most popular # ones for mush hosting such as linux. Other options include the KEEPALIVE # flag and the IDLE command. keepalive_timeout 5m # 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 # Should there be a limit on the number of concurrent guest logins the MUSH # will allow? This option can take 3 values: # 0 = no limit, any number of guests. Logins beyond the number of established # guest characters will result in multiple players being logged into the # same guest character. # -1 = limited to the number of guests in the database. To allow more guests # to log in, create more guest characters. # Any other number = the number of guest connections allowed at once. max_guests -1 # How much MUSH money do players get when they're created? starting_money 150 # How much MUSH money do non-guest players get each day they log in? paycheck 50 # How much MUSH money do guests get each day they log in? guest_paycheck 0 # What's the most money anyone but guests can have? max_pennies 100000 # What's the most money guests can have? max_guest_pennies 1000 # 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 maximum level of recursion allowed in functions function_recursion_limit 50 # the maximum number of functions that can be invoked function_invocation_limit 25000 # the maximum depth we're allowed to recursively call the parser # for a single expression. This limits how much the stack size can increase, # which could be useful if your host limits your stack (it will prevent # a crash). The higher your allowed stack size limit, the larger the # mush process can grow, and the higher this can be set. Generally # speaking, you won't ever see more than 8192 recursions, so that's # probably an upper limit, but most sane code shouldn't need more # than a couple hundred. Setting it to '0' means unlimited. call_limit 100 # The maximum number of milliseconds of CPU time that a single queue entry # is allowed to use before aborting. Setting this to a low number will # help prevent many malicious attacks, as well as accidently bad code, # from lagging the game. Setting it to 0 means unlimited, and is a bad # idea. Remember there are 1000 milliseconds in a second. queue_entry_cpu_time 1500 # The maximum number of Q registers one level of qregs can have. That is: # each localize(), ulocal(), etc will allow <max_named_qregs> to be set. # This is in addition to the default 36 of a-z and 0-9. For old behavior, # use 0. A very high limit will let an abusive player suck up quite a lot # of RAM. max_named_qregs 50 # How many channels total can be created? # This doesn't allocate memory, it just sets a maximum. max_channels 200 # What's the maximum length a player's @channel/title can be? # This does not include ansi/markup. chan_title_len 80 # 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 # What's the max chain length of indirect locks allowed? max_depth 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 # The maximum number of attributes per object. This prevents # denial-of-service attacks involving creating an infinite number # of attributes on an object. This value is probably enough. max_attrs_per_obj 2048 # The maximum number of mail messages in each player's inbox. # Encourages people to clean up their inbox, discourages # mailspammers. mail_limit 300 # How much @search costs find_cost 100 # 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? Setting this to 1 causes a coin to be lost with # every command. Setting it to 0 disables coin loss for queued # commands (and is a very bad idea). queue_loss 63 # What does it cost to build various things? room_cost 10 object_cost 10 link_cost 1 exit_cost 1 # How often should we run a purge to remove destroyed objects? (seconds) purge_interval 10m1s # How often should we run a dbck to check db consistency? (seconds) dbck_interval 9m59s # How often should we perform topology warning checks? # Default is 1 hour. If you set this to 0, timed MUSH-wide checks # will be disabled, but players can still use @wcheck. warn_interval 1h # If compiled with FLOATING_POINTS support, this controls the # decimal precision of numbers. Default is 6 digits after the # decimal point. float_precision 6 # The maximum length of player names. Lowering this won't change # current player names. player_name_len 15 # The maximum number of aliases a player may have simultaneously. # Setting this to 0 disables aliases. To allow an unlimited number # of aliases, set this to 4000 or so. max_aliases 3 # Limit the number of objects players can own. use_quota yes ### ### 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 1h # 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 # leave messages you don't want blank, but don't comment # them out or remove them from the file or you'll get the # default messages. # Leaving these undefined lets the game use the default, translated # messages. # OPTIONAL # dump_warning_5min GAME: Database save in 5 minutes. # dump_warning_1min GAME: Database save in 1 minute. # dump_message GAME: Saving database. Game may freeze for a few moments. # dump_complete GAME: Save complete. ### ### 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. These must either be the path to a text file, or a # #dbref/attrname to be evaluated and shown. dbref/attrs are passed # the port/descriptor as %0. If it's a message shown to a connected # player, their dbref is also passed as %1. 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 full_file txt/full.txt # Text file shown when someone uses WHO/DOING/SESSION at the login # screen. If empty, the default WHO output is shown. If an obj/attr # is given, you can use a softcoded WHO at the login screen. %2 will # be the arg given (for 'WHO foo'). # OPTIONAL # who_file # 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 full_html_file txt/full.html # OPTIONAL # who_html_file # The big text files. New ones can be added by setting up # a new subdirectory of game/txt as described in game/txt/README, # and adding a new help_command line below, or uncommenting one of # the normal file entries. #help_command index txt/index.txt #help_command rules txt/rules.txt #help_command +help txt/plushelp.txt help_command help txt/help.txt help_command news txt/news.txt ahelp_command ahelp txt/help.txt restrict_command ahelp admin ahelp_command anews txt/news.txt restrict_command anews admin # Name of a Sqlite3 file to use to store help data. help_db data/help.db # If you're using the email registration feature, but want to use a # mailer other than sendmail, put the full path to the mailer program # here. The mailer must accept the -t command-line argument ("get the # recipient address from the message header To:"). If it doesn't, you # could probably write a wrapper for it. # Example: #define MAILER "/full/path/to/other/mailer" sendmail_prog sendmail # A UTF-8 encoded file of words, one word per line, used with # suggest(words, X). Leave empty to disable. #dict_file /usr/dict/words dict_file /usr/share/dict/words # Name of a JSON file holding the database for named colors. colors_file txt/colors.json ### ### Logging ### ### When selecting log files, you may assign multiple logs to the ### same filename. If you don't assign a filename to a log, ### messages are written on stderr instead (usually redirected to ### log/netmush.log). Probably unwise to change these in a running ### MUSH. ### # Filename to log important messages (startups, errors, shutdowns) error_log log/netmush.log # Filename to log connections to connect_log log/connect.log # Also log connections in a sqlite3 database. See CONNLOG.md for details. use_connlog yes # The database file to use for the connlog. connlog_db log/connlog.db # Filename to log wizard commands to wizard_log log/wizard.log # Filename to log dump checkpoint messages to checkpt_log log/checkpt.log # Filename to log debugging trace messages to trace_log log/trace.log # Filename to log commands by SUSPECT players to command_log log/command.log # log all commands. Makes big, big command.log files. Use only for # debugging, generally. log_commands no # log forces done by wizards log_forces no # The password that must be given to do an @logwipe. You must also # be God, of course. CHANGE THIS. log_wipe_passwd zap! # The maximum size of a log file, in kilobytes log_max_size 100 # What to do when a log file hits its max size. # wipe: Erases the file completely, like @logwipe # rotate: Backup existing log file to a new one. # trim: Delete all but the most recent approximately 10% of the # contents. # Defaults to trim. # This can be on a per-log basis, or global. # Logfile names: error, command, wizard, connection, trace, checkpoint # Example: # log_size_policy error:rotate checkpoint:wipe default:trim log_size_policy trim # perform memory allocation tracking (logged on @dump) to help find # memory leaks. This really shouldn't be changed while the server # is running - it's only useful if you do a full shutdown, turn # this on, and then start up. Generally, you want this off. mem_check 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 # For 1.8.3p9 and later, this option is used to indicate the endianess # of the host system for password upgrades. If people aren't able to # log in with it set to yes, try changing to no. If that doesn't work, # just use @newpassword. reverse_shs yes # trigger @aconnect/@adisconnect in a connecting player's location # if the location is a room or thing? room_connects yes ### ### SQL connectivity ### # What SQL server platform should we use? Options include: # mysql, postgresql, sqlite3, disabled (the default) sql_platform disabled # What's the SQL hostname? Use '127.0.0.1' for a TCP connection # to the local host on port 3306, '<hostip>:<port#>' for a TCP # connection on another port (e.g. 127.0.0.1:3307), and # the word 'localhost' for a domain socket connection. sql_host 127.0.0.1 # What's the SQL database? You have to set this to a database that # you create, or the filename of a sqlite3 database. sql_database mush # What username to access the database? sql_username mush # What password for that user? Change this! sql_password mush ### ### Options affecting commands and functions ### (See also restrict_command to restrict command use) ### # The old daytime directive is better suited to restrict_command # or @command/disable. # prevent objects from evaluating ufuns on more privileged objects. [++] safer_ufun yes # allow functions that have side effects? (e.g. dig(), etc.) function_side_effects yes # default whisper to whisper/noisy instead of whisper/silent noisy_whisper no # default @cemit to @cemit/noisy instead of @cemit/silent noisy_cemit 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 # With this turned on, ZMRs and ZMOs are not included in control # checking. Only Zone Master Players are. The other zone types are # still used for command-matching, just not for control purposes. # Highly recomended. zone_control_zmp_only yes # When a player is nuked, his SAFE objects are @chowned to a player # dbref controlled by the probate_judge option. If this is set to # "yes", his non-safe objects are destroyed If this is set to "no", # they are chowned to probate_judge destroy_possessions yes # This is the dbref of the player that objects and channels belonging # to a nuked player are chowned to. If this is an invalid or # non-player dbref, GOD is used. See destroy_posessions. probate_judge 1 # Can we @link to an object? link_to_object yes # Keep queue limits on a per-owner rather than per-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 # If this is yes, DARK wizards do not trigger AENTER/ALEAVE when they move. # If it's no, they are just like anybody else. wiz_noaenter no # should say/pose by a DARK wizard be anonymous ('Someone says...')? full_invis no # Are empty attributes preserved? If this is yes, you can do # &ATTR obj= and obj will have an attribute ATTR set, with an empty value. # If this is no, that same command would clear the attribute instead. empty_attrs yes ### ### TinyMUSH compatibility ### # Should we treat a missing number as 0 in things like add(3,)? # For MUX compatibility, the answer is 'yes'. 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 # 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 # Should we trigger the @startup attribute on startup? # You always want to, unless you need to disable some # malicious code on an @startup. This does not affect the # @restart command, which will work even if this is "no". startups yes # Can @desc attributes be accessed remotely by everyone? # Historically, this was allowed, but it makes it difficult to # have hidden objects with secrets in their @desc if players # can remotely get the @desc. If set to "no", you must be # able to look at something to retrieve its @desc. read_remote_desc no ### ### Cosmetic stuff ### # show room/object/player names in bold for ansi players? ansi_names yes # show exit lists with commas (a, b, and c)? comma_exit_list yes # 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 # Leaving these commented lets the game use the translated default messages. # OPTIONAL # wizwall_prefix Broadcast: # rwall_prefix Admin: # wall_prefix Announcement: # Should we announce connections/disconnections to rooms and on channels? # If this is disabled, only HEAR_CONNECT players will see connect/disconnect. # @aconnect/@adisconnect, however, are still triggered, so you can # softcode whatever connection monitor you like. Players will probably # object if you don't at least show them when someone connects in # the room with them. announce_connects yes # Can players have names with spaces in them? # Names with spaces need to be enclosed in "double quotes" at the login # screen, and in any commands that take space-separated args like page. player_name_spaces no # 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 # Should we show the pager's alias, in parentheses, after their name? # That is, should recipients see: # Javelin (Jav) paged: ... page_aliases no # Allow a character other than + to be used for channel messages? This should # be a single character. Common choices include = and . # chat_token_alias = # Would you like to enable MUX-style channel aliases? These are # wrappers for Penn's @channel system to provide more familiar syntax # for MUX users, such as 'addcom <alias>=<channel>', then '<alias> # <message> for chatting instead of '+<channel> <message>'; see 'help # muxcomsys' for more details. use_muxcomm no # Should +whatever "hi! strip the initial quote and produce <whatever> X says, # "hi!", or not (producing <whatever> X says, ""hi!"). This also affects # the @*wall and say commands. chat_strip_quote yes # Should object names be restricted to just ascii characters, or can # non-ascii (Accented letters, for example) be used as well if the # mush'es locale permits? Not reccomended except for # non-english-language games, as people with tend to have problems # typing in those extra characters. @nameaccent is the preferred way to # get fancy names. only_ascii_in_names yes # Should we show @moniker'd names, and where should they be shown? This is # a space-separated list of the following: # chat - In @chat messages # say - Non-channel speech (say, pose, page, @wall, etc) # movement - Movement messages (Joe has arrived., exit @osucc/@odrop, etc) # look - "look" - contents/exit lists, when looking at an object, etc # unparse - In "examine", and other places which show Name(#123flags) # who - In WHO, DOING and SESSION # announcements - In "GAME: *" announcements and connect msgs sent to multiple objects # everywhere - All of the above # You can also limit the types of objects which monikers are used for with # players, things, rooms, exits. Use "alltypes" for everyone. If no types are # given, only objects with the MONIKER flag set ever display their moniker. # For 'everywhere but movement', you can use 'everywhere !movement', for all # objects except exits you can use 'alltypes !exits', etc. # Defaults to off, everywhere, for everyone monikers ### ### Default flags for newly created stuff ### To get multiple flags, you may repeat these directives: ### player_flags flag1 ### player_flags flag2 ### As of 1.7.7p6, you may also stack them on one directive: ### player_flags flag1 flag2 ### # -- 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 exit_flags # -- 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 # -- Default flags for newly created channels # # For example, you might want: # channel_flags player quiet open hide_ok channel_flags player # PennMUSH supports MSSP (Mud Server Status Protocol) which tells connecting # clients/bots some basic information about your game theme, setup, etc. # See http://tintin.sourceforge.net/mssp/ for the list of fields the protocol # currently supports. Penn automatically handles name, players, uptime, port, # codebase, family, pueblo, ssl, website - all others are up to you. # Example: # mssp contact/you@yourgame.com # mssp hiring coders/1 mssp ansi/1 mssp XTERM 256 COLORS/1 ### ### Reserved command names, and command and function aliases are in ### alias.cnf ### include alias.cnf ### ### Restrictions on command usage are in restrict.cnf ### include restrict.cnf