<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> <title>Dead Souls Admin FAQ</title> <link rel="icon" href="./favicon.ico" type="image/x-icon"> <link rel="shortcut icon" href="./favicon.ico" type="image/x-icon"> </head> <body> <big style="font-family: courier new,courier,monospace;"><big><span style="font-weight: bold;">Dead Souls Admin FAQ</span></big><br> <br> Written by Cratylus @ Dead Souls, October 2005<br> Updated August 2008<br> <span style="font-weight: bold; text-decoration: underline;"><br> </span>Note: commands are displayed in boldface, like this: <span style="font-weight: bold;">ls -a</span><span style="font-weight: bold; text-decoration: underline;"><br> <br> What's this FAQ about?</span><br> <br> The point of this document is to orient a new admin in<br> Dead Souls 2. Starting a MUD with a lib that is completely new to<br> you can be confusing and discouraging. Hopefully this FAQ will<br> make the experience less difficult.<br> <br> <br> <a href="#0">0 How do I start?</a><br> <br> <a href="#1">1 Is there a MUD somewhere running Dead Souls I can log into?</a><br> <br> <a href="#2">2 I like Dead Souls and I want to use it, but I don't want to run a mud.</a><br> <br> <a href="#3">3 I want to invite my friends to help me code. How do I promote </a><br> <a href="#3">them to creator status?<br> </a><br> <a href="#4">4 What about intermud? How do I talk on that?</a><br> <br> <a href="#5">5 I talk on intermud but nobody replies. What's up with that?</a><br> <br> <a href="#6">6 How did you know my mud started up?</a><br> <br> <a href="#7">7 I heard there's an I3 router included in Dead Souls.<br> </a><br> <a href="#8">8 What's this about a manual on Frontiers?</a><br> <br> <a href="#9">9 How do I add limbs to a race?</a><br> <br> <a href="#10">10 How do I add a race?</a><br> <br> <a href="#11">11 How do I make my friend an admin?<br> </a><br> <a href="#12">12 I don't like how the who command output looks! You should change it.<br> </a><br> <a href="#13">13 Can you please make the FAQ easier to read? It's too long and complicated.<br> </a><br> <a href="#14">14 Most of the file headers have only Descartes's name on them. </a><br> <a href="#14">Did you really develop this lib or did he?<br> </a><br> <a href="#15">15 How can I change the colors of the channel messages?<br> </a><br> <a href="#16">16 How do I know what other muds use Dead Souls?</a><br> <br> <a href="#17">17 I was hanging out in the Arch room and the loudspeaker went off. WTF?</a><br> <br> <a href="#18">18 I want to test the intermud channel but I don't want to spam the ds line.</a><br> <br> <a href="#19">19 What's this "Network room"?</a><br> <br> <a href="#20">20 The web server and FTP server don't work</a><br> <br> <a href="#21">21 I tried to log in to the FTP server but I can't!</a><br> <br> <a href="#22">22 I can't do anything with FTP. It just hangs there.<br> </a><br> <a href="#23">23 The web server gives me a 404 but I know the directory is there.</a><br> <br> <a href="#24">24 I'm using an external FTP server, but the files I transfer </a><br> <a href="#24">become read only!</a><br> <br> <a href="#25">25 I moved a command from one directory to another. How do I </a><br> <a href="#25">get the new location recognized?<br> </a><br> <a href="#26">26 The mudtime is all wrong!</a><br> <br> <a href="#27">27 The time of day is all wrong!</a><br> <br> <a href="#28">28 What happened to the roommaker and thingmaker?<br> </a><br> <a href="#29">29 I keep getting 'Connection to address server (localhost 9999) refused.' <br> </a><br> <a href="#30">30 Can I charge players a fee for playing on my mud?</a><br> <br> <a href="#31">31 Can people donate money to me for the mud?</a><br> <br> <a href="#32">32 I found a bug. For real. Can you please fix it?<br> </a><br> <a href="#33">33 Where would I edit to change how long someone can be idle </a><br> <a href="#33">before they get disconnected?<br> </a><br> <a href="#34">34 How do I permit all users who log in to become </a><br> <a href="#34">creators automatically?<br> </a><br> <a href="#35">35 How do I limit the use of intermud channels?</a><br> <br> <a href="#36">36 How do I get off intermud completely?</a><br> <br> <a href="#37">37 How do I change the start room for the mud?</a><br> <br> <a href="#38">38 I don't like having newbies get special treatment.</a><br> <br> <a href="#39">39 I don't want players to be able to pick non-human races.<br> </a><br> <a href="#40">40 I want everyone to speak the same language.<br> </a><br> <a href="#41">41 I made a change to /lib/player.c and updated it, but I'm not </a><br> <a href="#41">seeing a difference in my character.<br> </a><br> <a href="#42">42 How do I change the items new players receive?<br> </a><br> <a href="#43">43 Hey, there's no <foo> class! What's up with that?<br> </a><br> <a href="#44">44 Where can I get a Dead Souls mud hosted?<br> </a><br> <a href="#45">45 Your LIB_MXLPLX system is all screwy. I changed it and it </a><br> <a href="#45">works. Wanna see?<br> </a><br> <a href="#46">46 How are files organized in Dead Souls?<br> </a><br> <a href="#47">47 What are sefuns and efuns?</a><br> <br> <a href="#48">48 Whew! Ok now I know where stuff is. What's next?<br> </a><br> <a href="#49">49 Oh, man, you're kidding! Those are, like, books! Can't I </a><br> <a href="#49">just start making stuff?<br> </a><br> <a href="#50">50 Everything is su-u-u-u-p-e-e-r-r-r s-s-l-o-o-o-o-w-w-w<br> </a><br> <a href="#51">51 Dude! One of my creators just kicked me off my own mud!<br> </a><br> <a href="#52">52 Is Dead Souls secure?</a><br> <br> <a href="#53">53 I sent you my code a week ago. Is it in or out?<br> </a><br> <a href="#54">54 Did you finish the bfd() sefun modification I asked you for last night?<br> </a><br> <a href="#55">55 QUEEG_D is a horrendous mess. It's inefficient and frankly offensive.<br> </a><br> <a href="#56">56 You implemented my code but didn't give me credit.</a><br> <br> <a href="#57">57 Intermud mail doesn't work</a><br> <br> <a href="#58">58 The admintool menus let you pick options that aren't visible</a><br> <br> <a href="#59">59 What does locking the mud do, exactly?<br> </a><br> <a href="#60">60 The race help output is inadequate for role-playing. How do I change it?<br> </a><br> <a href="#61">61 I need to know what features to expect in the next release so </a><br> <a href="#61">I don't waste time duplicating effort<br> </a><br> <a href="#62">62 You need a development roadmap and task tracking<br> </a><br> <a href="#63">63 How do I update a sefun without rebooting the mud?<br> </a><br> <a href="#64">64 My new sefun updates but I can't seem to use it.<br> </a><br> <a href="#65">65 What's the point of the apostrophe-stripping for args in lib/command.c?<br> </a><br> <a href="#66">66 How does one achieve 'high mortal' or 'ambassador' positions?<br> </a><br> <a href="#67">67 I would like XYZ and PDQ to happen every time the mud boots<br> </a><br> <a href="#68">68 I can't login! I keep getting: "It seems some work is being done </a><br> <a href="#68">right now, try later."<br> </a><br> <a href="#69">69 I had a really great idea that revolutionizes ds and you refuse </a><br> <a href="#69">to include it. I am forking ds development and making my dream come true.<br> </a><br> <a href="#70">70 What do the version numbers mean?</a><br> <br> <a href="#71">71 The Dead Souls router is down.</a><br> <br> <a href="#72">72 I'm going to totally revamp <insert highly complex system here>.<br> Will that be difficult?</a><br> <br> <a href="#73">73 I've hired an area coder to make a new domain. I want her<br> to be able to use QCS in /domains/MistyDragonShireMysts.</a><br> <br> <a href="#74">74 How does player voting work?</a><br> <br> <a href="#75">75 What are "estates"?</a><br> <a href="#76"><br> </a></big><big style="font-family: courier new,courier,monospace;"><a href="#76">76 What are "events"?</a><br> <br> <a href="#77">77 Where does user monitor data go?</a><br> <br> <a href="#78">78 How would you set a race to be selectable by new players?</a><br> <br> <a href="#79">79 Where is emote data kept?</a><br> <br> <a href="#80">80 What are .h and .o files? Where are they kept?</a><br> </big><big style="font-family: courier new,courier,monospace;"><br> <a href="#81">81 But my friend forgot his password! I *have* to edit his playerfile!</a><br> <br> <a href="#82">82 How do I change my mud's name?</a><br> <br> <a href="#83">83 Help! I locked myself out!</a><br> <br> <a href="#84">84 What are the privileges associated with the groups in groups.cfg?</a></big><br style="font-family: courier new,courier,monospace;"> <big style="font-family: courier new,courier,monospace;"><br> <a href="#85">85 Why does the documentation refer to LIB_ARMOUR and armour_types.h?</a><br> <br> <a href="#86">86 Where are read/write restrictions kept?</a><br> <br> <a href="#87">87 I need to test day/night descriptions, but I can't wait around all day.</a><br> <br> <a href="#88">88 How can I change the default prompt? Can I make it dynamic?</a><br> <br> <a href="#89">89 What is "unguarded"?</a><br> <br> <a href="#90">90 Is intermud communication secure?</a><br> <br> <a href="#91">91 What are some do's and don'ts<span style="font-weight: bold; font-style: italic;"></span>?</a><br> <a href="#93"><br> </a></big><a style="font-family: courier new,courier,monospace;" href="#92"><big>92 Is DS2 in any way suited to create a non-english mud from/with it?</big></a><br style="font-family: courier new,courier,monospace;"> <a style="font-family: courier new,courier,monospace;" href="#93"><br> <big>93 I keep losing my intermud connection, and sometimes I'm half connected</big></a><br style="font-family: courier new,courier,monospace;"> <br style="font-family: courier new,courier,monospace;"> <a style="font-family: courier new,courier,monospace;" href="#94">94 I heard I can run my old TMI-2/Nightmare 3/Skylib/Lima code on Dead Souls. Is that true?</a><br style="font-family: courier new,courier,monospace;"> <br style="font-family: courier new,courier,monospace;"> <a style="font-family: courier new,courier,monospace;" href="#95">95 Why is the version of Dead Souls 2 on Sourceforge different from the one on dead-souls.net?</a><br style="font-family: courier new,courier,monospace;"> <big style="font-family: courier new,courier,monospace;"><br> <a href="#96">96 Good heavens! All I wanted to do was change combat, and it is so complicated!</a><br> <br> <a href="#97">97 Editing in Windows is fine and call_out()'s are great. Your advice sucks!</a><br> <br> <a href="#98">98 I keep hearing that Dead Souls can do this or that, but I'm trying and can't.</a><br> <br> </big><big style="font-family: courier new,courier,monospace;"><a href="#99">99 You appear to have a FAQ for everything!</a><br> <br> </big><big style="font-family: courier new,courier,monospace;"><a href="#100">100 If I XYZ, will that work?</a><br> <br> </big><big style="font-family: courier new,courier,monospace;"><a href="#102">102 Hey you skipped question 101!</a><br> <br> <a href="#103">103 </a></big><big style="font-family: courier new,courier,monospace;"><a href="#103">You are not taking my bug report very seriously.</a><br> <br> <a href="#104">104 </a></big><a href="#104"><big style="font-family: courier new,courier,monospace;">Dude. Just answer my question. It's just one question, ffs.</big></a><br> <big style="font-family: courier new,courier,monospace;"><br> <a href="#105">105 Is it possible to upgrade to alpha without killing everything I've done?</a><br> <br> <a href="#106">106 How do I start an area?</a><br> <br> <a href="#107">107 I don't want to use a cookie-cutter codebase</a><br> </big><big style="font-family: courier new,courier,monospace;"><br> <a href="#108">108 How do I make my new area the default domain where new people to arrive?</a><br> <br> <a href="#109">109 I heard passive mode on the FTP server works now.</a><br> <br> <a href="#110">110 I boot the mud but nothing happens...the startup headers<br> come up but nothing preloads and I get no error messages. What's<br> going on?</a><br> <br> <a href="#111">111 How do I add a default alias?</a><br> <br> </big><big style="font-family: courier new,courier,monospace;"><a href="#112">112 How do reset() and clean_up() work?</a><br> </big><big style="font-family: courier new,courier,monospace;"><br> <a href="#113">113 When do reset() and clean_up() happen?</a><br> <br> </big><big style="font-family: courier new,courier,monospace;"><a href="#114">114 I want a 100% PK mud. Setting rooms PK one by one is not acceptable.</a><br> <br> </big><a href="#115"><big style="font-family: courier new,courier,monospace;">115 How do I make a new skill?</big></a><br> <br> <a href="#116"><big style="font-family: courier new,courier,monospace;">116 Why was Descartes so lame?</big></a><br> <br> <a href="#117"><big style="font-family: courier new,courier,monospace;">117 The mud is locked whats the command to add someone to the allow list?</big></a><big style="font-family: courier new,courier,monospace;"><br> </big><big style="font-family: courier new,courier,monospace;"><br> </big><a href="#118"><big style="font-family: courier new,courier,monospace;">118 Shouldn't you change all the documentation to reflect the move to FluffOS?</big></a><br> <big style="font-family: courier new,courier,monospace;"><br> </big><big style="font-family: courier new,courier,monospace;"><a href="#119">119 How do I change my timezone?</a><br> <a href="#120"><br> </a></big><big style="font-family: courier new,courier,monospace;"><a href="#120">120 So I herd u liek mudkip</a><br> </big><big style="font-family: courier new,courier,monospace;"><br> </big><a href="http://dead-souls.net/ds-admin-faq.html#121"><big style="font-family: courier new,courier,monospace;">121 Where is all the player information stored?</big></a><br> <br> <a href="#122"><big style="font-family: courier new,courier,monospace;">122 The addrace command complains that the race already exists.</big></a><br> <br> <a href="#123"><big style="font-family: courier new,courier,monospace;">123 I am confused about the player/creator distinction.</big></a><br> <br> <big style="font-family: courier new,courier,monospace;"><a href="#124">124 How do I prevent people from using channels?</a><br> <br> <a href="#125">125 How do i disable the rss bot, or other channels?</a><br> <br> <a href="#126">126 I made a verb but it doesn't work.</a><br> <a href="#127"><br> 127 Does Dead Souls support databases like MYSQL?</a><br> <br> <a href="#128">128 How do I make my new currency work?<br> </a><br> <a href="#129">129 My friends can't connect to my mud, but I can!</a><br> <br> <a href="#130">130 My efun override is not working</a><br> <br> <a href="#131">131 How do I remove the QCS?</a><br> <br> <a href="#132">132 I heard you can edit stuff from the interwebs?</a><br> <br> <a href="#133">133 I want to let people build but I don't want them to be full creators</a><br> <br> <a href="#134">134 How do I enable IMC2? What is it?</a><br> <br> <a href="#135">135 Combat is too slow!</a><br> <br> </big><big style="font-family: courier new,courier,monospace;"><a href="#136">136 I want players to select their class when they create their characters</a><br> <br> </big><a href="#136"><big style="font-family: courier new,courier,monospace;"></big></a><big style="font-family: courier new,courier,monospace;"><a href="#137">137 I am strongly opposed to the use of intermud</a><br> </big><br> <a href="#136"><big style="font-family: courier new,courier,monospace;"></big></a><big style="font-family: courier new,courier,monospace;"><a href="#138">138 I hate one of the sample domains and I want it GONE</a><br> <br> <a href="#139">139 How do I make help files?</a><br> <br> <a href="#140">140 How many players will DS handle simultaneously?<br> </a><br> <a href="#141">141 I heard that Dead Souls for Windows has limitations<br> </a><br> <a href="#142">142 What are the CPU/RAM/diskspace requirements for Dead Souls?</a><br> <br> <a href="#143">143 Who's awesome?</a></big><br> <br> <br> <big style="font-family: courier new,courier,monospace;"></big><big style="font-family: courier new,courier,monospace;"><br> <span style="font-weight: bold; text-decoration: underline;"><a name="0"></a>How do I start?</span><br> <br> The first thing to do is follow the <a href="ds-inst-faq.html">installation FAQ</a><br> to get Dead Souls installed. Then log in, and start reading<br> the administrator's guide, by typing these commands:<br> <br> <span style="font-weight: bold;">read index in guide</span><br style="font-weight: bold;"> <br style="font-weight: bold;"> <span style="font-weight: bold;">read chapter 1 in guide</span><br style="font-weight: bold;"> <br style="font-weight: bold;"> <span style="font-weight: bold;">read chapter 2 in guide</span><br> <br> etc.<br> <br> You should also become familiar with the <a href="http://dead-souls.net/ds-creator-faq.html">Creator FAQ</a>, in<br> particular <a href="http://dead-souls.net/ds-creator-faq.html#1.1">the section on getting questions answered</a>.<br> <br> <br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="1"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">Is there a MUD somewhere running Dead Souls I can log into?</span><br> <br> As a convenience to the curious, I have set up a "demo" mud<br> at alcatraz.wolfpaw.net, port 8000. To connect, either click on<br> <a href="telnet://alcatraz.wolfpaw.net:8000">this link</a> with your browser, or open a terminal window <br> (or for windows users, Start -> Run ) and <br> type: <span style="font-weight: bold;">telnet</span> </big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold;">alcatraz.wolfpaw.net 8000 </span>, or use the java applet<br> at this page: <a href="http://dead-souls.net/javaclient/demo.html">http://dead-souls.net/javaclient/demo.html</a><br> <span style="font-weight: bold;"><br> </span></big><big style="font-family: courier new,courier,monospace;">When you log in, the system will ask you whether you'd<br> like to be a player or creator. You'll want to choose "creator"<br> so that you can examine code, try out the QCS, etc. <br> <br> <span style="font-weight: bold; color: rgb(153, 0, 0);">Please note that in the regular, non-demo version of the</span><br style="font-weight: bold; color: rgb(153, 0, 0);"> <span style="font-weight: bold; color: rgb(153, 0, 0);">mud, people are NOT automatically given that choice. </span><br> <br> On the regular non-demo version of the mud, Only<br> the admin (basically, the first person to log on to the new mud)<br> gets automatic creatorship by default.<br> <br> After logging in, you will be transported<br> to your workroom. Some useful commands:<br> <br style="font-weight: bold;"> <span style="font-weight: bold;">look<br> look at me<br> look at chest<br style="font-weight: bold;"> </span><span style="font-weight: bold;">open chest<br> look in chest<br style="font-weight: bold;"> </span><span style="font-weight: bold;">get tricorder from chest</span><br style="font-weight: bold;"> <span style="font-weight: bold;">read index in handbook</span><br style="font-weight: bold;"> <span style="font-weight: bold;">read chapter 1 in handbook</span><br style="font-weight: bold;"> <span style="font-weight: bold;">who</span><br style="font-weight: bold;"> <span style="font-weight: bold;">stat</span><br style="font-weight: bold;"> <span style="font-weight: bold;">wiz<br> create new npc generic<br> look at board<br> read 1 on board<br> home<br> </span><br> </big><big style="font-family: courier new,courier,monospace;"><br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="2"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">I like Dead Souls and I want to use it, but I don't want to run a mud.</span><br> <br> Being a mud admin is very different from being just a coder<br> or builder, and many people just don't feel like dealing with<br> the hassle of running a mud. <br> There are a few Dead Souls muds out there that could<br> use help from you. Telnet to the Dead Souls development mud<br> and type: <span style="font-weight: bold;">mudlist -m Dead</span> to see a list of Dead Souls muds<br> that might be hiring.<br> You can also just code on the Dead Souls development<br> mud. You're welcome to create as you please, and if your<br> building gets to the point where you'd like it included in<br> the lib, let me know and I'll inspect it for approval.<br> <br> Please note that starting January 2007, for any of your code to become <br> part of the official Dead Souls distribution, you must officially <br> disclaim copyright to it and place it into public domain.<br> <br> <br style="font-weight: bold; text-decoration: underline;"> </big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="3"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">I want to invite my friends to help me code. How do I</span><br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;">promote them to creator status?</span><br> <br> <span style="font-weight: bold;">encre dude<br> <br> </span>To demote them:<span style="font-weight: bold;"><br> <br> decre dude<br> <br> </span><br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="4"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">What about intermud? How do I talk on that?</span><br> <br> The intermud3 (or i3) network is available<br> to you, and you are probably already connected to it. Type<br> <span style="font-weight: bold;">mudlist</span> to see a list of other muds on the network.<br> <br> By default, the "Dead Souls intermud channel" is<br> enabled for creators. Type: <span style="font-weight: bold;">ds blah blah</span><br> and other Dead Souls muds on the i3 network will see<br> your message like this:<br> <br> <span style="font-weight: bold;">You@YourMud <span style="color: rgb(255, 204, 0);"><ds></span> blah blah</span><br style="font-weight: bold;"> <br> Please note that intercre is where you ask coding<br> and technical questions only. Random chatting is not<br> tolerated on that channel. Newbie questions that are<br> Dead Souls specific or that obviously have answers in<br> Dead Souls documentation may meet a hostile reception on <br> intercre.<br> <br> Conversely, dchat is mostly chat. <br> <br> <span style="color: rgb(102, 0, 0); font-weight: bold;"></span><span style="font-weight: bold;">Note: </span><span style="color: rgb(255, 0, 0);">If you decide to add the intergossip channel to</span><br style="color: rgb(255, 0, 0);"> <span style="color: rgb(255, 0, 0);">yourself or your creators, be aware that conversations</span><br style="color: rgb(255, 0, 0);"> <span style="color: rgb(255, 0, 0);">there tend often not to be PG-rated. You can</span><br style="color: rgb(255, 0, 0);"> <span style="color: rgb(255, 0, 0);">also find yourself baited into a flamebattle if</span><br style="color: rgb(255, 0, 0);"> <span style="color: rgb(255, 0, 0);">you're not careful. I protect newbies as I can, but</span><br style="color: rgb(255, 0, 0);"> <span style="color: rgb(255, 0, 0);">it helps if you can prevent yourself from being baited.</span><br style="color: rgb(255, 0, 0);"> <span style="color: rgb(255, 0, 0);">Really I'd suggest you avoid the intergossip channel</span><br style="color: rgb(255, 0, 0);"> <span style="color: rgb(255, 0, 0);">entirely.</span><br> <br> The lpuni channel is a mix of chat and official <a href="lpu_faq.html">LPUniversity</a> <br> business. The LPUniversity project has been dead as of<br> November 2006, though, so the channel's existence is likely<br> to be a matter of historical, and not practical, relevance.<br> <br> The ds channel is for Dead Souls-related conversation. Sometimes<br> the topic drifts, but "random chat" should be avoided<br> there. Use dchat for off-topic chat. If you don't already<br> have dchat enabled, type: <span style="font-weight: bold;">call me->AddChannel("dchat")</span></big><big style="font-family: courier new,courier,monospace;"><br> <br> For information on IMC2, a different intermud network, <br> see: <a href="http://dead-souls.net/ds-admin-faq.html#134">http://dead-souls.net/ds-admin-faq.html#134</a></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold;"></span><br> <br> <br style="text-decoration: underline; font-weight: bold;"> <span style="text-decoration: underline; font-weight: bold;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="5"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="text-decoration: underline; font-weight: bold;">I talk on intermud but nobody replies. What's up with that?</span><br> <br> If you haven't changed your MUD's name from the<br> stock default (ie if your mud name is DeadSoulsWin <br> or DeadSoulsNew) then your mud may be conflicting with<br> someone else's new mud that is already connected to<br> intermud. <a href="#82">Change your mud's name</a> and see if this helps.<br> <br> Another possible cause is network problems.<br> I3 uses a hub topology. All muds communicating on intermud<br> connect to the router to do so. If that router is down all<br> i3 communication stops, until it comes back up. To check<br> network status, ping Frontiers or Dead Souls. If the<br> ping command gets no answer, i3 is probably down, or<br> your connection to it has been interrupted. Your mud will<br> be aware of this and retry to connect to i3 every<br> fifteen minutes or so.<br> <br> There's also the possibility that nobody who wants to<br> chat is listening.<br> <br> It's also possible that the Dead Souls I3 router has<br> changed address or port. Visit this page to get the<br> latest connection info:<br> <a href="http://dead-souls.net/router.html"><br> Dead Souls I3 Router Page</a><br> <br> Under some unusual circumstances, the router might<br> be misbehaving. If that happens, post a question on<br> the lpmuds intermud topic: <a href="http://lpmuds.net/forum/">http://lpmuds.net/forum/</a><br> <br> Please make sure you post on the Intermud topic.<br> <br> It may also be that you have been earmuffed by <br> other people, because you've annoyed them. You<br> can avoid this by becoming familiar with the<br> <a href="#99">proper way to find answers</a>.<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="6"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">How did you know my mud started up?</span><br> <br> The same way your mud knows that i3 is up or<br> down. A while ago I noticed that i3 can be very<br> unreliable, and sometimes when it goes down and<br> comes back up, people's muds don't refresh their<br> connection, and they can be off intermud for days<br> without realizing it.<br> <br> I implemented a "keepalive" system which<br> uses the intermud "auth" packets as pings. Every <br> five minutes or so, your mud tries to ping Frontiers,<br> Dead Souls, and itself. If it gets a reply from at <br> least one, then it's happy. If neither reply, then your <br> mud alerts the Arch room that intermud is down, and it<br> will reload the intermud daemon every 15 minutes<br> in an attempt to reconnect. Once i3 is back up and<br> you are reconnected, you go back to pinging.<br> <br> This means that Frontiers and Dead Souls<br> get a bunch of pings all the time. When a mud we've<br> never heard of before pings us, we get a message<br> about it, and so we know a new mud is online.<br> <br> If this makes you feel like Big Brother<br> is watching you, you can edit "PINGING_MUDS" in<br> /secure/include/config.h to have the name of<br> your own mud only, so you just ping yourself.<br> <br> You can also disable your intermud connection with the command:<br> <br> <span style="font-weight: bold;">mudconfig intermud disable</span><br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="7"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">I heard there's an I3 router included in Dead Souls.</span><br> <br> Please see the <a href="http://dead-souls.net/router.html">router page</a> for details.<br> <br> <br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="8"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">What's this about a manual on Frontiers?</span><br> <br> It's no longer relevant. All the docs<br> we were making available on Frontiers are now included<br> in Dead Souls, starting from version 1.9r9.<br> <br> In your workroom is a chest. Open the<br> chest and the new Dead Souls Creators Manual is<br> inside. The text files are in /doc/manual .<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"></span><span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="9"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">How do I add limbs to a race?</span><br> <br> Edit /secure/cfg/races/<race> and make the changes<br> you want. Then use <span style="font-weight: bold;">removerace</span> to remove the race from the<br> races daemon, then add re-add the race with <span style="font-weight: bold;">addrace</span> . <br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="10"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">How do I add a race?</span><br> <br> Copy a race in </big><big style="font-family: courier new,courier,monospace;">/secure/cfg/races/ and edit it.<br> For example:<br> <br> <span style="font-weight: bold;">cp </span></big><big style="font-weight: bold; font-family: courier new,courier,monospace;">/secure/cfg/races/bear</big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold;"> /secure/cfg/races/wampa</span><br> <br> Edit the wampa file to reflect what you think a<br> wampa is like. If you want new players to be able<br> to select wampa as their race, make sure the file<br> has this line in it:<br> <br> PLAYER_RACE 1<br> <br> Make especially sure to change the lines RACE and<br> LANGUAGE. When you're done editing, type:<br> <br> <span style="font-weight: bold;">addrace wampa</span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold;"> </span><br> <br> For details:<br> <span style="font-weight: bold;">help addrace<br> <br> </span>Note that the race file PLAYER_RACE line overrides <br> the options used in the addrace command.<br> <br> NOTE: It is possible to remove all races. However, please<br> read the following discussion to get an idea of the issues<br> involved:<br> <br> <span style="color: rgb(204, 0, 0);">[2006.11.20-18.08] Ohm@ashdev <dead_souls> Hey, if the removeraces command will screw up something, will removing the races manually from admintool have the same effect?</span><br> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.08] Cratylus@Dead Souls Demo <dead_souls> ok let's take this one step at a time</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.09] Cratylus@Dead Souls Demo <dead_souls> removeraces will erase the list of races held in the races daemon</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.09] Cratylus@Dead Souls Demo <dead_souls> what this means is that when you try to clone a bear, you will get a big pukey error message</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.10] Cratylus@Dead Souls Demo <dead_souls> because bears aren't a race any more, so the npc you try to clone will error out</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.10] Cratylus@Dead Souls Demo <dead_souls> i consider that "broken" behavior, because i dont like it</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.10] Cratylus@Dead Souls Demo <dead_souls> but you'll only see it if you try to load npc's, aka mobs<br> <span style="color: rgb(0, 0, 0); font-weight: bold;">[Ed note: removing all races will also screw your players]</span><br> </span><span style="color: rgb(204, 0, 0);">[2006.11.20-18.11] Ohm@ashdev <dead_souls> what if I want to get rid of all those races, and all of those mobs?</span><br> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.11] Cratylus@Dead Souls Demo <dead_souls> right</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.11] Cratylus@Dead Souls Demo <dead_souls> before i answer your question</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.12] Cratylus@Dead Souls Demo <dead_souls> do you plan to have dogs n cats n deer n stuff?</span><br> <span style="color: rgb(204, 0, 0);">[2006.11.20-18.12] Ohm@ashdev <dead_souls> No. I'm want to completely write all my mobs from scratch, because they're based on a very specific virtual world.</span><br> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.12] Cratylus@Dead Souls Demo <dead_souls> ok</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.13] Cratylus@Dead Souls Demo <dead_souls> what you want to do is not complicated</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.13] Cratylus@Dead Souls Demo <dead_souls> so i hope yer not getting that vibe</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.13] Cratylus@Dead Souls Demo <dead_souls> the reason i'm cautioning you against it is</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.14] Cratylus@Dead Souls Demo <dead_souls> that removing all races basically makes lots of rooms not work anymore, because they contain npc's that requireraces to exist</span><br> [2006.11.20-18.14] Syphon@WorldWideResistance <dead_souls> eep, That's a bit of editing<br> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.14] Cratylus@Dead Souls Demo <dead_souls> and disabling sample areas isn't something i recommend to someone who's starting out</span><br> <span style="color: rgb(204, 0, 0);">[2006.11.20-18.15] Ohm@ashdev <dead_souls> right, that's what I'm trying to figure out. How can I get rid of the mobs, and other spots that require them so it will run right.</span><br> [2006.11.20-18.15] Syphon@WorldWideResistance <dead_souls> Can't he just dest npc in all the rooms ?<br> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.15] Cratylus@Dead Souls Demo <dead_souls> ok</span><br> <span style="color: rgb(204, 0, 0);">[2006.11.20-18.15] Ohm@ashdev <dead_souls> I'm newish to ds, but I've worked with plenty of other muds, and I figured I can reference to the backups if I need help.</span><br> [2006.11.20-18.15] Syphon@WorldWideResistance <dead_souls> How many rooms are there<br> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.15] Cratylus@Dead Souls Demo <dead_souls> desting an npc doesnt permanently remove it from the room</span><br> [2006.11.20-18.15] Syphon@WorldWideResistance <dead_souls> ah<br> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.15] Cratylus@Dead Souls Demo <dead_souls> to permanently remove an npc</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.16] Cratylus@Dead Souls Demo <dead_souls> walk into the room it's in</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.16] Cratylus@Dead Souls Demo <dead_souls> and then: delete <npc></span><br> [2006.11.20-18.16] Syphon@WorldWideResistance <dead_souls> nod<br> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.16] Cratylus@Dead Souls Demo <dead_souls> where <npc> is the name of the npc</span><br> [2006.11.20-18.16] <dead_souls> Zeus@Ancient Rome deletes Cratylus...wait that won't work :P<br> [2006.11.20-18.16] <dead_souls> Zeus@Ancient Rome watches the delete backfire and melts into a pile of goo<br> <span style="color: rgb(204, 0, 0);">[2006.11.20-18.16] Ohm@ashdev <dead_souls> yea, but that's not exactly practical in my situation... I want to get rid of ALL npcs in ALL rooms.</span><br> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.17] Cratylus@Dead Souls Demo <dead_souls> ok</span><br> <span style="color: rgb(204, 0, 0);">[2006.11.20-18.18] Ohm@ashdev <dead_souls> wait, this doesn't make sense... the only npc I see in the source files is fighter.c</span><br> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.19] Cratylus@Dead Souls Demo <dead_souls> here's what i think then</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.19] Cratylus@Dead Souls Demo <dead_souls> if the sampel areas are incompatible with your vision, then just don't use them</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.20] Cratylus@Dead Souls Demo <dead_souls> not trying to be difficult, but if it's a lot of trouble to back-port to them, you're probably better off concentrating on your original areas</span><br> <span style="color: rgb(204, 0, 0);">[2006.11.20-18.20] Ohm@ashdev <dead_souls> when you first load the server, what areas are loaded, and from where?</span><br> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.21] Cratylus@Dead Souls Demo <dead_souls> the mud expects /domains/default to exist for some stuff like the default death room and such</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.21] Cratylus@Dead Souls Demo <dead_souls> but by editing /secure/include/rooms.h you can just substitute your own rooms for these system functions</span><br> <span style="color: rgb(204, 0, 0);">[2006.11.20-18.21] Ohm@ashdev <dead_souls> Ohhhhhhhhh! Okay. I see now.</span><br> [2006.11.20-18.22] Kriton@Dead Souls Arena <dead_souls> send_messages needs a man page :P<br> <span style="color: rgb(204, 0, 0);">[2006.11.20-18.22] Ohm@ashdev <dead_souls> So you're saying the npcs listed in domains/default/npc/ are required because rooms listed in rooms.h try and load some of those npcs.</span><br> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.23] Cratylus@Dead Souls Demo <dead_souls> not quite</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.23] Cratylus@Dead Souls Demo <dead_souls> hang on crazy 2 yr old</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.28] Cratylus@Dead Souls Demo <dead_souls> ok</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.28] Cratylus@Dead Souls Demo <dead_souls> in /secure/include/rooms.h you can see that special rooms are specified</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.29] Cratylus@Dead Souls Demo <dead_souls> the start room, the death room, etc</span><br> <span style="color: rgb(204, 0, 0);">[2006.11.20-18.29] Ohm@ashdev <dead_souls> right</span><br> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.29] Cratylus@Dead Souls Demo <dead_souls> the mud needs these to exist, or your users will be helpless</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.29] Cratylus@Dead Souls Demo <dead_souls> ok</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.29] Cratylus@Dead Souls Demo <dead_souls> my point is, you dont need to use the ones that are there</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.29] Cratylus@Dead Souls Demo <dead_souls> make your own, and then put the filenames in the rooms.h file</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.30] Cratylus@Dead Souls Demo <dead_souls> nobody who plays your mud ever needs to see a single stock room</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.30] Cratylus@Dead Souls Demo <dead_souls> they can just exist like an appendix, unused, unneeded</span><br> <span style="color: rgb(204, 0, 0);">[2006.11.20-18.30] Ohm@ashdev <dead_souls> ok</span><br> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.30] Cratylus@Dead Souls Demo <dead_souls> eventually, once they have no usefulness, deleted</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.31] Cratylus@Dead Souls Demo <dead_souls> but for now, i think they *are* useful to you</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.31] Cratylus@Dead Souls Demo <dead_souls> as examples</span><br style="color: rgb(0, 0, 153);"> <span style="color: rgb(0, 0, 153);">[2006.11.20-18.31] Cratylus@Dead Souls Demo <dead_souls> which is why i caution you against just deleting lots of stuff before you get the hang of how i all works</span><br> <span style="color: rgb(204, 0, 0);">[2006.11.20-18.32] Ohm@ashdev <dead_souls> ok, that makes sense</span><br style="color: rgb(204, 0, 0);"> <span style="color: rgb(204, 0, 0);">[2006.11.20-18.32] Ohm@ashdev <dead_souls> I really just needed to know what I had to do to remove all stock rooms from player view</span><br> <span style="font-weight: bold;"></span><br> <br style="font-weight: bold; text-decoration: underline;"> </big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="11"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">How do I make my friend an admin?</span><br> <br> <span style="font-weight: bold;"><br> </span>To make a creator named Xyzzy an assistant admin, type:<span style="font-weight: bold;"><br> <br> groupmod -a ASSIST xyzzy <br> <br> </span>Xyzzy then needs to log out and log back in. To<br> make him a full admin, you'd add him to the SECURE group instead.<br> <span style="font-weight: bold;"></span><br> <br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="12"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">I don't like how the who command output looks! You should change it.</span><br> <br> Believe it or not, I actually get requests like this. I also<br> get stuff like "the inventory list should be chronological in<br> order of acquisition." Maybe that's a good idea, but it's<br> your mud, not mine. Make it so for yourself.<br> <br> If there is something broken about the lib itself, such as<br> an insta-death bug or a command that crashes the mud, I am<br> happy and eager to hear about it, so I can implement the fix<br> in the next lib release. If a normal action causes a runtime<br> error or abnormal behavior, I need to know that. Also typoes, null<br> error messages, etc...in short, tell me what's broken.<br> However, if the problem you're having is that the lib,<br> by design, behaves in a way not to your liking, this isn't something<br> I'm likely to "fix" for you. For example, if you want a "<span style="font-weight: bold;">who</span>"<br> command with a cooler look, that's up to you to make. You're<br> the one coding a mud, so you need to take it upon yourself to<br> understand the code and modify it to suit your tastes.<br> Similarly, "orcs are too strong!" or "advancing levels<br> should increase your eyesight" are issues you need to deal<br> with on your own, using the coding skills learned from reading the<br> Creator's Manual.<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="13"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">Can you please make the FAQ easier to read? It's too long and complicated.</span><br> <br> No.<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="14"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">Most of the file headers have only Descartes's name on them. Did</span><br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;">you really develop this lib or did he?</span><br> <br> Both. The lib he released in 1997 was his, and so almost every<br> file on it had his name. I've been working on it since, but<br> I am very lazy about headers. I work on lots of files at the<br> same time, and authorship attribution tends to rank very low<br> on my priority list. Therefore, even though a great majority <br> of the files in the lib have been either heavily modified or<br> created by me, my name is on very few.<br> <br> I haven't bothered to go back and revise headers either, <br> because, honestly, what a pain in the butt that would be. I'm<br> satisfied knowing there's little doubt who has made the many<br> changes on the lib.<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="15"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">How can I change the colors of the channel messages?</span><br> <br> The colors are specified in /secure/daemon/chat.c<br> <br> You will need to replace the color specification in more<br> than one spot in that file.<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="16"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">How do I know what other muds use Dead Souls?</span><br> <br> <span style="font-weight: bold;"></span><br> <span style="font-weight: bold;">mudlist -m Dead<br> </span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold;"><br> </span>See the <a href="http://dead-souls.net/ds-creator-faq.html">creator's FAQ</a> for more intermud command info.<br> <br> <span style="font-weight: bold;"><br> </span><span style="text-decoration: underline; font-weight: bold;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="17"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="text-decoration: underline; font-weight: bold;">I was hanging out in the Arch room and the loudspeaker went off. WTF?</span><span style="font-weight: bold;"><br> </span><br> Your mud receives all sorts of network requests from the <br> intermud network, such are remote who (asking who is logged on),<br> remote finger (info on users), locate (trying to find a user<br> somewhere on i3), etc. Whenever your mud receives such a request,<br> it used to be announced in the Arch room. If that is still happening,<br> you are probably not running a current version of the lib.<br> <br> The current behavior is that network messages are<br> announced in the network room (below the arch room) and router<br> messages are announced in the router room (south of the<br> network room).<br> <br> Note that these messages are normal,<br> and do not represent an attempt to undermine your security.<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="18"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">I want to test the intermud channel but I don't want to spam the ds line.</span><br> <br> Type: <span style="font-weight: bold;">ds_test test</span><br> <br> The ds_test channel is specifically for communication<br> testing so that ds can remain spam free.<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="19"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">What's this "Network room"?</span><br> <br> There is a room below the Arch room called the network room.<br> It is intended to facilitate troubleshooting of network<br> and intermud problems. Unless you're intimately familiar<br> with Dead Souls network code, I suggest avoiding this<br> room, as it is very messy and very noisy.<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="20"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">The web server and FTP server don't work</span><br> <br> To enable them at mud boot time for 2.1 and below, uncomment the "inet" line in<br> /secure/cfg/preload.cfg<br> <br> To enable it temporarily, type: <span style="font-weight: bold;">update /secure/daemon/inet</span><br> <br> On 2.3 and above, use the commands: <span style="font-weight: bold;"> <br> mudconfig inet enable <br> mudconfig http enable </span><br> <br> These servers do not use the standard ports. The internet standard<br> http port is 80 and for ftp it is 21. Your mud ftp and web servers<br> do not use these. <br> Instead, the network port for your web server is 5 less<br> than your mud's port, and the ftp port is 1 less.<br> This means that if your mud is reached by telnetting<br> to port <span style="color: rgb(204, 0, 0);">6666</span>, your ftp server will be at <span style="color: rgb(204, 0, 0);">6665</span> and your web server<br> will be at <span style="color: rgb(204, 0, 0);">6661</span>.<br> <br> Please note that the web and ftp server are not supported. They work,<br> but whatever security risk they pose is entirely on you.<br> <br> <br style="text-decoration: underline; font-weight: bold;"> <span style="text-decoration: underline; font-weight: bold;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="21"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="text-decoration: underline; font-weight: bold;">I tried to log in to the FTP server but I can't!</span><br> <br> Make sure you use your mud name and mud password, not the<br> username and password of the computer you are on.<br> <br> <br> <span style="text-decoration: underline; font-weight: bold;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="22"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="text-decoration: underline; font-weight: bold;">I can't do anything with FTP. It just hangs there.</span><br> <br> FTP is a funny sort of protocol. If you don't have a direct<br> connection to an FTP server (for example, you are behind a<br> firewall), you have to use PASV (or passive) mode. Unfortunately,<br> at this time, PASV is not implemented in the mud FTP server. <br> <br> <span style="font-weight: bold; text-decoration: underline;">*UPDATE</span>: As of Dead Souls 2.1a19 there is a passive-mode<br> compliant ftp server included in the lib. See <a href="#109">this link</a><br> for more information.<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="23"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">The web server gives me a 404 but I know the directory is there.</span><br> <br> Like the FTP server, the web server is a very simple program.<br> It does not do directory listings at all. If you request<br> a directory, and it can't find an "index.html" file, it<br> just errors out.<br> <br> It will also barf if a file you try to serve is <br> unusually large.<br> <br> Let me make this point one final, excruciatingly clear time:<br> <span style="font-weight: bold; font-style: italic;">If you need a webserver, use apache.</span> The mud www server is available<br> as a convenience, not as a production-quality standards-compliant<br> intarweb server.<br> </big><big style="font-family: courier new,courier,monospace;"><br> <span style="font-weight: bold;"></span><br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="24"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">I'm using an external FTP server, but the files I transfer<br> become read only!<br> <br> </span></big><big style="font-family: courier new,courier,monospace;">You need to make sure that the FTP server you use<br> runs as the same user as the mud driver does, otherwise<br> you'll have permissions conflicts.<br> </big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold;"></span><br> </big><big style="font-family: courier new,courier,monospace;"><br> <span style="text-decoration: underline; font-weight: bold;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="25"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="text-decoration: underline; font-weight: bold;">I moved a command from one directory to another. How do I get the new location recognized?</span><br> <br> First, run update on the command in question.<br> then:<br> If it's not a verb: <span style="font-weight: bold;">update /daemon/command</span><br> If it's a verb: <span style="font-weight: bold;">update /daemon/verbs<br> <br> </span><br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="26"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">The mudtime is all wrong!</span><br> <br> The <span style="font-weight: bold;">mudtime</span> command tells you what time it is in the game, not what time<br> it is in the real world. This mud time, or game time, passes much more<br> quickly than normal, real-world time, so you may see a few sunrises and<br> sunsets in the game while playing. Hopefully you are sufficiently<br> well-adjusted that this will not occur in real life.<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="27"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">The time of day is all wrong!</span><br> <br> If you used <span style="font-weight: bold;">admintool</span> to change your timezone and the time of day is still<br> wrong, you may be using an OS with timekeeping that Dead Souls doesn't<br> understand. You may be using a UNIX operating system that is set for <br> GMT offsets, rather than local time.<br> <br> If this is so, figure out how many hours off you are, and<br> enter that value into the EXTRA_TIME_OFFSET parameter in /secure/include/config.h<br> If you're running a version of Dead Souls higher than 2.1.1, you<br> should also make sure LOCAL_TIME in /secure/include/config.h is set to 0.<br> <br> Also make sure to change your timezone during daylight saving<br> changes. For example, EDT to EST, and vice versa.<br> <br> <span style="font-weight: bold; text-decoration: underline;"></span><br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="28"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">What happened to the roommaker and thingmaker?</span><br> <br> They produced code that was often incompatible with QCS. They are no<br> longer supported.<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="29"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">I keep getting 'Connection to address server (localhost 9999) refused.' </span><br> <br> This is a harmless error. Dead Souls uses a program called addr_server to<br> try to resolve hostnames. However, hostname resolution is not important<br> to running the mud, so it's not automatically configured. If you run<br> addr_server with a specific port as an argument, and edit mudos.cfg to<br> point to that port for the addr_server, then reboot the mud, then you<br> will probably have hostname resolution in your mud.<br> <br> However, not all OS'es handle name resolution the same, so this may not<br> work, even if you do everything exactly right. Either way, it doesn't<br> affect the mud.<br> <br> <span style="text-decoration: underline; font-weight: bold;"></span><br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="30"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">Can I charge players a fee for playing on my mud?</span><br> <br> <big><big style="color: rgb(204, 0, 0);"><span style="font-weight: bold;">NO.</span></big></big> <br> <br> Dead Souls uses MudOS, and MudOS has a license that specifically<br> and strictly forbids its use in a commercial way. I don't care how<br> you use the lib, but if you use it with MudOS, you need to comply<br> with MudOS licensing. If you were to port Dead Souls to some other<br> driver that allows commercial use, then you'd be all set.<br> <br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="31"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">Can people donate money to me for the mud?</span><br> <br> <big><big><span style="color: rgb(204, 0, 0); font-weight: bold;">Yes.</span></big></big><br style="font-weight: bold;"> <br> So long as there is no quid-pro-quo, or anything<br> about the transaction that is legally regarded as "commercial",<br> receiving money from people for the purpose of running the<br> mud is ok. However, I am not a lawyer, so read the MudOS<br> license yourself.<br> <br> You should not try to bend the rules. For<br> example, public television channels often give trinkets to<br> donors as a token of their appreciation. If someone donates<br> money to you for your mud and they get a "thank you gift",<br> this is a quid-pro-quo, or "something for something", and<br> it's not right.<br> <br> This is a MudOS thing, not a Dead Souls thing.<br> If you can't abide by MudOS licensing, just port Dead<br> Souls to some driver that lets you do commercial stuff.<br> Then please tell me how you did it, so I can pass on the<br> leetness to others.<br> <br> <br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="32"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">I found a bug. For real. Can you please fix it?</span><br> <br> Email me: <put my name here>@comcast.net<br> <br> Please include a detailed description of the bug, and the exact<br> error text and commands that produced it. A log file or<br> screencap would be helpful.<br> <br> Make sure you have read this:<br> <br> <a href="http://www.chiark.greenend.org.uk/%7Esgtatham/bugs.html">http://www.chiark.greenend.org.uk/~sgtatham/bugs.html</a><br> <br> <br> <br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="33"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">Where would I edit to change how long someone can be idle before they get disconnected?</span><br> <br> 1) Modify IDLE_TIMEOUT in /secure/include/config.h<br> </big><big style="font-family: courier new,courier,monospace;">Don't do this with a Windows editor.<br> </big><br style="font-family: courier new,courier,monospace;"> <big style="font-family: courier new,courier,monospace;">2) </big><big style="font-family: courier new,courier,monospace;">update /secure/daemon/master<br> <br> 3) update -r /lib/player<br> <br> Instead of the updates you can reboot the mud.<br> <br> Users of Dead Souls versions above 2.1a15 can type (for example): <br> <br> <span style="font-weight: bold;">mudconfig maxidle 14400<br> <br> </span>To make players get logged off after four hours. Setting the<br> number to 0 makes it so there is no idling timeout enforced.<br> <br> Note that logged-in players need to log off and log back on for<br> this change to take effect.<br> <br> </big><big style="font-family: courier new,courier,monospace;"><br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="34"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">How do I permit all users who log in to become creators automatically?</span><br style="font-weight: bold; text-decoration: underline;"> <br> 1) Set AUTO_WIZ </big><big style="font-family: courier new,courier,monospace;">in /secure/include/config.h to 1<br> </big><big style="font-family: courier new,courier,monospace;">Don't do this with a Windows editor.<br> </big><br style="font-family: courier new,courier,monospace;"> <big style="font-family: courier new,courier,monospace;">2) </big><big style="font-family: courier new,courier,monospace;">update /secure/daemon/master<br> <br> 3) update /secure/lib/connect<br> <br> Instead of the updates you can reboot the mud.<br> <br> </big><big style="font-family: courier new,courier,monospace;">Users of Dead Souls versions above 2.1a15 can just type:<br> <span style="font-weight: bold;">mudconfig autowiz on</span><br> <br> </big><big style="font-family: courier new,courier,monospace;"><br> <span style="text-decoration: underline; font-weight: bold;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="35"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="text-decoration: underline; font-weight: bold;">How do I limit the use of intermud channels?</span><br> <br> </big><big style="font-family: courier new,courier,monospace;">1) Set RESTRICTED_INTERMUD </big><big style="font-family: courier new,courier,monospace;">in /secure/include/config.h to 1<br> </big><big style="font-family: courier new,courier,monospace;">Don't do this with a Windows editor.<br> </big><br style="font-family: courier new,courier,monospace;"> <big style="font-family: courier new,courier,monospace;">2) Add the players who are allowed to use intermud channels to<br> the intermud group using admintool.<br> <br> 3) update /secure/daemon/master<br> <br> 4) update /daemon/services/*<br> <br> 5) update /daemon/services<br> <br> 6) update /daemon/intermud<br> <br> 7) update /secure/daemon/chat<br> <br> Instead of these updates, you could just reboot the mud.<br> <br> </big><big style="font-family: courier new,courier,monospace;">Users of Dead Souls versions above 2.1a15 can </big><big style="font-family: courier new,courier,monospace;">just </big><big style="font-family: courier new,courier,monospace;">type:<br> <span style="font-weight: bold;">mudconfig intermud restrict</span><br> <br> They can also use groupmod to add/remove users to the<br> intermud group:<br> <span style="font-weight: bold;">groupmod -a intermud joebob</span><br style="font-weight: bold;"> <span style="font-weight: bold;">groupmod -r intermud jimbob</span><br> <br> </big><big style="font-family: courier new,courier,monospace;"><br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="36"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">How do I get off intermud completely?</span><br> <br> </big><big style="font-family: courier new,courier,monospace;">1) Set DISABLE_INTERMUD </big><big style="font-family: courier new,courier,monospace;">in /secure/include/config.h to 1<br> </big><big style="font-family: courier new,courier,monospace;">Don't do this with a Windows editor.<br> </big><br style="font-family: courier new,courier,monospace;"> <big style="font-family: courier new,courier,monospace;">2) </big><big style="font-family: courier new,courier,monospace;">update /secure/daemon/master<br> <br> 3) update /daemon/intermud<br> <br> </big><big style="font-family: courier new,courier,monospace;">Users of Dead Souls versions above 2.1a15 can just type:<br> <span style="font-weight: bold;">mudconfig intermud disable<br> <br> </span></big><big style="font-family: courier new,courier,monospace;"><br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="37"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">How do I change the start room for the mud?</span><br> <br> 1) change ROOM_START in /secure/include/rooms.h<br> </big><big style="font-family: courier new,courier,monospace;">Don't do this with a Windows editor.<br> </big><br style="font-family: courier new,courier,monospace;"> <big style="font-family: courier new,courier,monospace;">2) reboot the mud<br> <br> </big><big style="font-family: courier new,courier,monospace;">Users of Dead Souls versions above 2.1a15 can just type (for example):<br> <span style="font-weight: bold;">mudconfig startroom /domains/MystyDragonClouds/room/cloud_nine<br> </span>If you use mudconfig for this, a reboot isn't necessary, but it'll<br> ensure all objects in the mud use the new start room.<span style="font-weight: bold;"><br> </span><br> </big><big style="font-family: courier new,courier,monospace;"><br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="38"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">I don't like having newbies get special treatment.</span><br> <br> </big><big style="font-family: courier new,courier,monospace;">1) Set MAX_NEWBIE_LEVEL </big><big style="font-family: courier new,courier,monospace;">in /secure/include/config.h to 0<br> Don't do this with a Windows editor.<br> <br> </big><big style="font-family: courier new,courier,monospace;">2) reboot the mud<br> <br> </big><big style="font-family: courier new,courier,monospace;">Users of Dead Souls versions above 2.1a15 can just type:<br> <span style="font-weight: bold;">mudconfig newbielevel 0<br> </span>then:<span style="font-weight: bold;"><br> update -r /lib/player<br> </span></big><big style="font-family: courier new,courier,monospace;"><br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="39"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">I don't want players to be able to pick non-human races.</span><br> <br> 1) Set HUMANS_ONLY in </big><big style="font-family: courier new,courier,monospace;">/secure/include/config.h to 1<br> </big><big style="font-family: courier new,courier,monospace;">Don't do this with a Windows editor.<br> <br> </big><big style="font-family: courier new,courier,monospace;">2) reboot the mud<br> <br> * Note that this will not affect players who are <br> already non-human.<br> <br> </big><big style="font-family: courier new,courier,monospace;">Users of Dead Souls versions above 2.1a15 can just type:<br> <span style="font-weight: bold;">mudconfig justhumans 1</span><br> <br> </big><big style="font-family: courier new,courier,monospace;"><br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="40"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">I want everyone to speak the same language.</span><br> <br> </big><big style="font-family: courier new,courier,monospace;">1) Set ENGLISH_ONLY in </big><big style="font-family: courier new,courier,monospace;">/secure/include/config.h to 1<br> </big><big style="font-family: courier new,courier,monospace;">Don't do this with a Windows editor.<br> <br> </big><big style="font-family: courier new,courier,monospace;">2) reboot the mud<br> <br> </big><big style="font-family: courier new,courier,monospace;">Users of Dead Souls versions above 2.1a15 can type:<br> <span style="font-weight: bold;">mudconfig justenglish 1</span></big><br> <big style="font-family: courier new,courier,monospace;"><br> * Note that this may not affect players who already<br> are not native English speakers. To change them, <br> type:<br> <br> <span style="font-weight: bold;">call players_name_here->SetNativeLanguage("English")</span></big><big style="font-family: courier new,courier,monospace;"><br> <br> </big><big style="font-family: courier new,courier,monospace;"><br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="41"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">I made a change to /lib/player.c and updated it, but I'm</span><br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;">not seeing a difference in my character.<br> <span style="text-decoration: underline;"></span><br> </span><br> If an object (you) is loaded into memory, it contains<br> the features and functions of its file and inherited files<br> <span style="font-style: italic;">at the time it was loaded</span>.<br> <br> Changing those files and updating them doesn't do<br> anything to an object that is already loaded using the<br> old code.<br> <br> In a case like this, what you want to do is<br> recursively update the file of the object in question,<br> then reload the object.<br> <br> Let's say you modified /lib/npc.c so that<br> npc's sit down by default. Say you want the fighter in<br> your test room to possess this new functionality.<br> <br> If you type: <span style="font-weight: bold;">reload -r fighter</span><br> <br> then the fighter's file is recursively updated,<br> the current version of the fighter is whisked away, and<br> a new version of the fighter is created, incorporating<br> the new auto-sit feature.<br> <br> If the change in question is to lib/player.c<br> or some other file inherited by you, you would<br> type:<br> <br> <span style="font-weight: bold;">update -r /lib/creator</span><br> <br> But you are still using that same old body as<br> before, so you'll need to quit and log back in to <br> get a new body using the new code.<br> <br> Note that disconnecting and logging back in is not enough.<br> You have to actually quit, so your old player object<br> is completely destroyed.<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="42"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">How do I change the items new players receive?</span><br> <br> Look in /lib/player.c for the function that gives<br> new players jeans and a t-shirt. Modify this<br> function to suit you. Make absolutely sure that<br> the objects you put there actually clone<br> correctly.<br> <br> Remember to <span style="font-weight: bold;">bk /lib/player</span> before editing this file,<br> because if you screw it, then log off without <br> restoring a working copy, you will be sad.<br> <br> <br> </big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="43"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="text-decoration: underline; font-weight: bold;">Hey, there's no <foo> class! What's up with that?</span><br> <br> True, there is no samurai class, and in fact, as of<br> this writing there is no cleric, acrobat, frombotzer,<br> or basketweaver.<br> <br> The reason for this is that the Dead Souls<br> mudlib distribution isn't intended to be 100% ready for <br> players to show up and start doing quests.<br> <br> What quests there are, what races, classes,<br> areas, objects, rooms, and NPC's you find in the<br> distribution are examples. If you open your mud<br> to players and what you've got is the Orcslayer and<br> newbie mansion quests, you might as well just close down.<br> In fact, please do.<br> <br> Dead Souls is a starting point for a mud.<br> I have no way of knowing if you're going to have<br> mermen in an aquatic-theme mud. I have no clue <br> whether your space aliens will have 8 tentacles or<br> 16 (they like base2, dontcha know).<br> <br> So, no, there's no <foo>, because the<br> responsibility for making the mud in your creative<br> vision is yours, not mine. My job is to give you<br> a lib with enough working examples and enough<br> documentation so that you can code your own<br> basketweaving bugblatter beasts.</big><br style="font-family: courier new,courier,monospace;"> <big style="font-family: courier new,courier,monospace;"><br> </big><big style="font-family: courier new,courier,monospace;"><br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="44"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">Where can I get a Dead Souls mud hosted?</span><br> <br> That's a heck of a good question. There are many mud hosting services<br> out there. A good host will have a high level of service, shell<br> and file transfer access, etc, for which you obviously will need<br> to pay money. <br> <br> Lately I've heard rave reviews for <a href="http://altrealm.com/">Alternate Realm Hosting</a> from<br> people with good judgment. If I weren't already happy with<br> my arrangements I'd probably give them a day in court. They're<br> supposedly inexpensive and have very good service and support.<br> <br> </big><big style="font-family: courier new,courier,monospace;">I'm told that the free mud hosting at <a href="http://isunlimited.net/hosting-mu.php">ISUnlimited</a> is adequate.</big><br> <big style="font-family: courier new,courier,monospace;"><br> There used to be another free mud hosting service I<br> was aware of, and that's <a href="http://www.frostmud.com/">FrostMud</a>. It was basically a guy and a Linux<br> server with room on it for muds. However, there's some sort<br> of problem he has and it's going away. <br> <br> <span style="font-weight: bold;">Update:</span> He wrote me an email saying he's back, so perhaps you <br> can still use his service.<br> <br> There's no such thing as a free lunch. If you want<br> a reliably solid, well supported, feature-rich platform for your<br> mud, quit being a cheapskate and cough up the $9/mo. That's<br> like, what, three espressos a month. Nobody is too hard up to<br> host commercially, unless you're on the street. <br> <br> I've heard good things about the commercial service <br> from <a href="http://arthmoor.com/mud-hosting.php">Arthmoor</a> and <a href="http://www.genesismuds.com/">Genesis</a>.<br> <br> <a href="http://wolfpaw.net/">Wolfpaw</a> also is an excellent commercial host: stable and reliable. <br> One of my test muds is hosted there, and this is the uptime report,<br> as of 25 December 2006:<br> <br> <span style="font-weight: bold;">Dead Souls Arena has been up for 11w 6d 7h 28m 34s.<br> </span><br> However, Wolfpaw has become rather tired of dealing with <br> newbie mud admins, so unless you're a hardcore do-it-yourselfer<br> who just needs a big data pipe and nothing else, you may be<br> better off with other hosting.<br> <br> If you have a DSL or cable modem, and your computer is<br> up all the time, you can just use that, too. Your IP may be<br> dynamic, making it tough for people to find you, but there are<br> dynamic-dns services out there that help keep your ip<br> tied to a specific name.<br> <br> If you're <span style="font-weight: bold; font-style: italic;">really</span> hard up you can email me and beg for<br> me to host you for free, but you'll get no fancy schmutz like a <br> web page or shell access. And if your mud gets on my nerves <br> (being inactive for a long time is enough to do that) I'll just <br> wipe it. Possibly without even warning you. It's not that I'm <br> a jerk or I like being mean. I just don't have a lot of time <br> for nonsense.<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="45"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">Your LIB_MXLPLX system is all screwy. I changed it and it works. Wanna see?</span><br> <br> Hell yes. I'm not just in this for my health. I want<br> more people coding in LPC so I can look at the fresh ideas and<br> new perspectives of other people (read: swipe code).<br> <br> Send me an invitation to your mud by email or <ds>. I'd<br> love to look at your work.<br> <br> If it is code you are willing to donate to Dead Souls, I<br> will gladly accept its submission, also by email. There's no<br> guarantee it will make it into any future release, but it just might.<br> <br> Please be aware that by doing so, you signal you claim no <br> copyright to the code (you must make it Public Domain), allowing me to <br> publish it and preventing you from ever revoking my right to distribute it.</big><big style="font-family: courier new,courier,monospace;"><br> <br> You also represent that no third party has copyright to <br> the code, and hold me harmless in any subsequent<br> dispute between you and any other third party.<br> <br> If you want to email me code but wish to retain <br> copyright, please state so clearly in the body of your email. I<br> will honor that request </big><big style="font-family: courier new,courier,monospace;">(and it's the law so I don't really <br> have a choice). Just be aware I will not put code into Dead<br> Souls that anyone other than me has copyright to. I can't<br> afford the risk of someone deciding I can't distribute<br> code that DS may eventually rely on.<br> <br> </big><big style="font-family: courier new,courier,monospace;">Also, I don't want to hear from anyone about my<br> use of legal terms of art. I know damn well it's more complicated<br> than I make it sound. My phrasing is sufficient to make<br> the legal practical transaction of ideas possible here.<br> </big><big style="font-family: courier new,courier,monospace;"><br> The point I'm making should be clear. If it isn't,<br> please consult applicable laws, etc. <br> <br> </big><big style="font-family: courier new,courier,monospace;"><br> </big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="46"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">How are files organized in Dead Souls?</span><br> <br> <span style="font-weight: bold;">cd /</span> and <span style="font-weight: bold;">ls</span> to view the top level directory. The<br> list may be largely meaningless to you, so let's review it here:<br> <br> <span style="color: rgb(0, 102, 0); font-weight: bold;">cfg/</span><br> <br> General configuration files for timezone and such.<br> <br> <span style="color: rgb(0, 102, 0); font-weight: bold;">cmds/</span><br> <br> Main location of commands that don't require special access<br> privileges. Commands are different from verbs in that they tend<br> not to manipulate your environment, but rather deal with <br> the player's relationship to the system and/or files.<br> <br> <span style="font-weight: bold; color: rgb(0, 102, 0);">daemon/</span><br> <br> Daemons are files that provide access to data files in an<br> organized way. For example, adding an occupational class <br> (like, say, assassin) to the game needs to be done in a<br> precise way in order for it not to break things. By sending<br> the data to the daemon first, you can be sure that the<br> new system configuration is entered properly. Daemons also<br> provide a means to access data, like "how much is silver<br> worth compared to gold", that is uniform across the mud, and <br> prevents accidental overwrites of data files by multiple<br> editors.<br> <br> <span style="font-weight: bold; color: rgb(0, 102, 0);">doc/</span><br> <br> General documentation. <br> <br style="font-weight: bold; color: rgb(0, 102, 0);"> <span style="font-weight: bold; color: rgb(0, 102, 0);">domains/</span><br> <br> This is where MUD game areas go when they are complete<br> and ready for general play by the public. Once here, only<br> admins have write access to the files. <br> <br> <span style="font-weight: bold; color: rgb(0, 102, 0);">estates/</span><br> <br> Where player-owned objects and rooms are kept.<br> <br> <br> <span style="font-weight: bold; color: rgb(0, 102, 0);">ftp/</span><br> <br> The base for the MUD ftpd. Using the ftpd is probably dangerous<br> in terms of your system security, and I discourage it, but if<br> you are determined to have mud ftp access for your creators, <br> this is one way. See /secure/lib/net for the actual server. It<br> may or may not work. I won't support it.<br> <br> <span style="font-weight: bold; color: rgb(0, 102, 0);">include/</span><br> <br> Include files provide a set of constants for your files. For<br> example, if you include <damage_types.h>, you can specify in<br> the code for your chainmail that it protects against<br> the damage type "BLADE" at a certain level.<br> <br> <span style="font-weight: bold; color: rgb(0, 102, 0);">lib/</span><br> <br> This is the heart of the Dead Souls lib. This is the location<br> of the files that your objects, be they swords, shoes, or <br> handguns, will use as their configuration base. <br> <br> <span style="color: rgb(0, 102, 0); font-weight: bold;">log/</span><br> <br> Log files.<br> <br> <br> <span style="font-weight: bold; color: rgb(0, 102, 0);">news/</span><br> <br> Announcements are made here. For example, in /news/creator<br> you can post a notice that you have added a teleportation<br> spell, and when your creators log on, they will see the message.<br> <br> <span style="font-weight: bold; color: rgb(0, 102, 0);">obj/</span><br> <br> Contains some important templates, especially some for the QCS.<br> <br> <span style="font-weight: bold; color: rgb(0, 102, 0);">open/</span><br> <br> Legacy directory. Kept for compatibility. Historically this<br> directory has served as a place where creators can put code<br> for others to freely modify.<br> <br> <span style="font-weight: bold; color: rgb(0, 102, 0);">realms/</span><br> <br> This is where creator home directories are.<br> <br> <span style="font-weight: bold; color: rgb(0, 102, 0);">save/</span><br> <br> Files that describe properties of the MUD's systems live<br> here. The number of limbs that a bat has, for example, <br> is in races.o. In classes.o you'll find the skill ranges<br> for fighters. Do not edit these files. They must be<br> modified by daemons only, or you risk corrupting them.<br> <br> <span style="font-weight: bold; color: rgb(0, 102, 0);">secure/</span><br> <br> This directory will be described in a separate section below.<br> <br> <span style="color: rgb(0, 102, 0); font-weight: bold;">shadows/</span><br> <br> Shadows are a controversial feature of LPC. This directory<br> is designed for shadow objects, but they should be very<br> rarely, if ever used. Basically shadow objects are objects<br> that attach themselves to another object, intercepting<br> function calls. For obvious reasons this is a security <br> risk, so unless you really <span style="font-style: italic;">really</span> know what you're doing, <br> avoid them. Shadows not in this directory will not load.<br> <br> <span style="font-weight: bold; color: rgb(0, 102, 0);">spells/</span><br> <br> Pretty self explanatory. The spells daemon looks for spells here.<br> Spells not in this directory will not be available.<br> <br> <span style="font-weight: bold; color: rgb(0, 102, 0);">std/</span><br> <br> Provided for backward-compatibility with older lib<br> files. Not needed if you aren't porting from an older<br> or different lib (such as TMI-2 or LPUniversity).<br> <br> <br> <span style="font-weight: bold; color: rgb(0, 102, 0);">tmp/</span><br> <br> A directory anyone can write to. Generally for swapping<br> data between objects, systems, or people. Note: files<br> here can't be loaded into memory with the update command, <br> for security reasons. If you need to put something in<br> a world-writable place but need it to be loadable, use<br> /open instead.<br> <br> <span style="font-weight: bold; color: rgb(0, 102, 0);">verbs/</span><br> <br> A controversial topic. Verbs are a kind of command. For<br> example, <span style="font-weight: bold;">go</span> and <span style="font-weight: bold;">sit</span> and <span style="font-weight: bold;">open</span> are verbs. Specifically, verbs<br> are commands that interact with the user's environment. The<br> idea is that <span style="font-weight: bold;">throw my first red rock at the green goblin</span><br> should work, and should work the same everywhere on the<br> MUD. Verbs are a source of debate among some people, because<br> to folks accustomed to add_action commands, verbs seem<br> excessively complex. Verbs not in this directory will<br> not load.<br> <br> <span style="font-weight: bold; color: rgb(0, 102, 0);">www/</span><br> <br> Like the ftp directory, but for the MUD webserver.<br> <br> <br> Ok now let's take a quick look at the /secure directory: <span style="font-weight: bold;">ls /secure</span> <br> As you can see, /secure seems to have many of the same directories <br> that the root filesystem has. <br> The reason a /secure directory is needed is that<br> there are files that should not be readable by everyone, and<br> there are files that must be writable only by a few. The MUD security<br> system uses the /secure directory as a means to control access to <br> such files.<br> For example, the average creator has no business <br> accessing the player data files of other creators or players. Therefore<br> /secure/save/creators and /secure/save/players is offlimits to them.<br> <br> A directory without a counterpart in / is /secure/sefun. This<br> is where simulated external functions reside. <br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="47"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">What are sefuns and efuns?</span><br> <br> </big><big style="font-family: courier new,courier,monospace;"> First let me explain that the driver has built-in<br> functions that are available to the mud. For example,<br> type <span style="font-weight: bold;">eval return find_player("cratylus")</span> , but replace my name<br> with yours. Your player object pointer will be found and returned<br> to you (more or less. strictly speaking it's more complicated).<br> The driver provides this function. Because it is "external"<br> to the mudlib, that is, it's in the driver and not the lib, <br> it is called an external function, or more commonly, "efun". The<br> idea is that certain actions you ask the mud to perform are<br> so common that they are made available MUD-wide.<br> <br> Efuns are ridiculously useful and powerful, and because<br> they are in the driver as compiled code, very fast. A near-complete<br> set of efun documentation is available in /doc/efun. <br> <br> However, the driver does not contain every possible<br> MUD-wide function you might want. For example, there is a <br> tell_object() efun, which lets you send a message to an object<br> such as a player. The syntax is something like this:<br> <br> tell_object(find_player("cratylus"),"Hi.");<br> <br> Which doesn't look like much, but believe me, this<br> kind of stuff adds up. I wanted to make this simpler, so I<br> used what is called a sefun, or a simulated efun. It is<br> a function that is available lib-wide, but it isn't in<br> the driver. Instead it is provided by the lib itself (the<br> master daemon, specifically). By adding the appropriate code<br> in /secure/sefun/ I have now made available a tell_player() sefun,<br> which works like this:<br> <br> tell_player("cratylus","Hi.")<br> <br> This simplification of code will become more obviously<br> useful to you as you get more coding under your belt. Most<br> sefuns are documented in /doc/sefun.<br> </big><big style="font-family: courier new,courier,monospace;"><br> <br> <br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="48"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">Whew! Ok now I know where stuff is. What's next?</span><br> <br> You probably want to examine how objects are written.<br> Type <span style="font-weight: bold;">goto /domains/town/room/road</span> and wander around town<br> a bit. If you want to see the code for something, for example,<br> the beggar, <span style="font-weight: bold;">about beggar</span> should do it, provided the beggar is<br> in the room.<br> <br> To see the filenames of the objects around you,<br> type scan here, or scan me to scan your own inventory. <br> <br> If you've never coded before, this is the hard part.<br> To understand what you're looking at when you run commands like <br> <span style="font-weight: bold;">more /domains/town/weap/orcslayer.c</span> you need to get comfortable<br> with LPC. <br> <br> The brute force way of doing this is copying stuff<br> and then changing the descriptions, thus making new stuff.<br> This will work, but you'll waste time looking for examples of<br> exactly what you want to do..and you may not find them. <br> Instead, learning LPC will let you create whatever<br> you want, without relying on templates.<br> <br> This means that now you must read the LPC Basic<br> manual, then the LPC Intermediate manual. As admin, your<br> creators will expect you to know what's in there.<span style="text-decoration: underline;"><br> <span style="text-decoration: underline;"><span style="text-decoration: underline;"><span style="text-decoration: underline;"><br> </span></span></span></span> On your person or in the chest in your workroom is<br> the Creators Manual. Read both the Players Handbook and<br> the Creators Manual from cover to cover.<br> <br> It's also important to read the Administrator's<br> Guidebook.<span style="text-decoration: underline;"><span style="text-decoration: underline;"></span><br> </span><br> <br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="49"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">Oh, man, you're kidding! Those are, like, books! Can't I</span><br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;">just start making stuff?</span><br> <br> Well...ok. But you need to go through the docs<br> soon, ok? In the meantime, read the QCS chapters in the <br> Creators Manual to get you quick-started in the creation <br> process. Remember you need to be holding your Creator <br> Staff in order to access the QCS commands.<br> <br> Start with chapter 31, like this:<br> <br> <span style="font-weight: bold;">read chapter 31 in my manual</span><br> <br> </big><big style="font-family: courier new,courier,monospace;"><br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="50"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">Everything is su-u-u-u-p-e-e-r-r-r s-s-l-o-o-o-o-w-w-w</span><br> <br> First, make sure you are using the latest available version of<br> Dead Souls (check <a href="http://dead-souls.net">here</a>). Older versions of Dead Souls<br> are known to have nasty memory leaks.<br> <br> Next, see if you have runaway objects. An object can be coded<br> to do really unpleasant stuff like replicate itself over and<br> over until it brings the mud to its knees. Find out how many<br> objects are loaded by typing: <span style="font-weight: bold;">eval return sizeof(objects())</span><br> <br> If the count is in the thousands, and only a few people are<br> logged on, you<span style="font-weight: bold;"> </span>may have a runaway. Most often this involves<br> NPC's doing stuff you didn't expect. Reset all loaded rooms<br> with the following command (you may need to enter it more<br> than once): <br> <br> <span style="font-weight: bold;">reload every room<br> <br> </span>perhaps followed by a:<span style="font-weight: bold;"><br> <br> flushobs<br> </span><span style="font-weight: bold;"></span><br> If the lag clears up, you found the culprit. If not, see if<br> the callouts list is clogged with the command: <span style="font-weight: bold;">callouts</span><br> <br> If all else fails, reboot the mud and ask for help on the ds line.<br> <br> Please note that the rage virus (especially if unleashed<br> in the menagerie) is notorious for redlining the mud. Having<br> hundreds of NPC's all engaging in simultaneous combat<br> while infecting each other with a rapidly spreading hostility<br> virus can be expected to impact overall performance. So please try<br> to avoid the rage virus unless you are specifically stress testing<br> your system.<br style="font-weight: bold; text-decoration: underline;"> <br> <br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="51"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">Dude! One of my creators just kicked me off my own mud!</span><br> <br> One of the virtues of LPC is that it is flexible and powerful.<br> One of the drawbacks of LPC is that it is flexible and powerful.<br> <br> It is not possible to make an LP mud that is<br> immune to abuse from creators. You just can't. The MudOS<br> function set is just too complex and sophisticated to eliminate<br> every possibility of abuse.<br> <br> You will therefore *always* be vulnerable to things<br> like people coding objects that crash the mud on purpose (I<br> won't detail how that can be done, but anyone with intermediate<br> LPC skill can do it, and utter newbies can even do it with<br> a stupid enough mistake), finding a way to dest admins, or<br> continually updating recursively the /lib filesystem. A<br> jackass will always find a way to expose you to her jackassery.<br> <br> This means that you need to know who is coding on your<br> mud and what they are doing. Your job as an admin is to <br> immediately deal with coders who pose a discipline problem.<br> If they fool you once, shame on them. If they fool you<br> twice..the..they...they shouldn't fool you twice is what I'm<br> saying.<br> <br> This does not mean that Dead Souls is somehow<br> impossible to secure. You can easily prevent unauthorized<br> access to lib data. See the next section for how this works.<br> <br> What you can't prevent is some dude off the internet<br> you just met and made a creator from wreaking havoc on your <br> mud and creating a nuisance of himself. You have to know who <br> these people are and you have to have a level of trust and <br> confidence in them, otherwise you need to use the <span style="font-weight: bold;">decre</span> <br> command.<br> <br> </big><big style="font-family: courier new,courier,monospace;"><br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="52"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">Is Dead Souls secure?</span><br> <br> The short answer is no, nothing I know of is "secure" in the<br> sense that you don't need to continually pay attention to it. <br> <br> Just like any other Internet program you use, Dead Souls<br> is not an obvious security risk, so long as it is not used carelessly.<br> And, obviously, games of any kind, including Dead Souls, should never<br> be installed on any mission-critical, national security, public<br> safety, or health care server. <br> <br> Dead Souls security involves two separate spheres:<br> <br> 1) The binary executable and the system that runs it.<br> <br> 2) The mudlib and the code that you use and create.<br> <br> The first sphere is probably most important. Presumably<br> you plan to run a mud on a computer that does other things too, <br> and you want to keep those things separate from your mud. The <br> most important thing to do is to avoid running Dead Souls as a<br> privileged user. <br> <br> In the case of Windows, this means that the<br> program should not be run by Administrator or anyone in the<br> Administrator group.<br> <br> For unix users, this means that the driver should not run<br> under uid 0 (root). <br> <br> The reason for this precaution is that if some genius<br> hacker manages to exploit some unknown weakness in the program, <br> it is better that the process they hack doesn't have full admin<br> privileges to the box.<br> <br> This caution has little to do with Dead Souls specifically.<br> It is a warning I'd give to anyone planning to run any kind of network<br> server. You should take your own security seriously, and<br> if you do not understand your own security situation, you need to take<br> a step back and ask yourself if running a mud at all is a good idea.<br> <br> Sphere 2 is lib security. In older muds, file and directory <br> privileges were handled by attributes on the files. If a file's<br> user id (UID) matched a user's UID, then that user had full access<br> to it. Such systems often had complex systems that evaluated<br> effective UID (EUID) based on the file's attributes, its parent<br> directory, the user's ID, possibly group id, etc. This is an<br> entirely valid security model, but because of its complexity,<br> it tended to be exploited easily and often. If you don't<br> stay 100% on top of such a system (just like any OS), there's<br> no way to be sure you won't rooted.<br> <br> With stack security, privilege management is much, much<br> simpler. A file's privilege is based solely on its location. If<br> a user doesn't have read access to /foo/bar/ then she can't read<br> or modify /foo/bar/file.c. If someone with privs to that location<br> copies the file to somewhere else, then the privs of that new location<br> are in force on the file.<br> The "stack" part of stack security comes from the mud<br> evaluating the privileges of <span style="font-weight: bold; font-style: italic;">all the objects involved in the</span><br style="font-weight: bold; font-style: italic;"> <span style="font-weight: bold; font-style: italic;">access request</span>. If you're unprivileged and you manage to get a <br> privileged object to make the access request for you, the access <br> will fail, because you are unprivileged, and you are still part <br> of the function call stack (i.e., the list of instructions that<br> form a chain between the command and the intended event).<br> <br> Granular (more detailed) modification of user privileges<br> can be done by changing files in /secure/cfg to grant <br> users and groups specific privileges. Also see<br> the <span style="font-weight: bold;">grant</span> command, as well as <span style="font-weight: bold;">domainadmin</span>. <br> <br> Security bugs usually aren't about the security model itself<br> being weak, but rather careless code (generally from me). If<br> you find such a bug, please let me know right away so I<br> can fix it. You will receive credit for the discovery on the<br> hotfix page.<br> </big><big style="font-family: courier new,courier,monospace;"><br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="53"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">I sent you my code a week ago. Is it in or out?</span><br> <br> How long it takes me to review code submissions has nothing<br> to do with what I think of you, your skills, or your<br> code. It takes me a long time because Dead Souls isn't<br> actually my job, and is not a physical member of my<br> family, so it has to wait its turn sometimes, for my attention.<br> Sometimes I will get to someone else's code sooner even<br> though I received yours first. What can I say. Sometimes<br> I feel like dealing with a particular thing at a particular<br> time.<br> <br> <br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="54"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">Did you finish the bfd() sefun modification I asked you for last night?</span><br> <br> I'm on the ds line a lot, and generally accommodate people's<br> requests right away if I have time. This makes it seem<br> sometimes like I can turn orders around in minutes or<br> hours, like a short-order cook.<br> This is an illusion. I do this sometimes<br> for requests that strike my fancy or that are so simple<br> they are not inconvenient, or maybe because I happen to<br> be bored at that moment. But my sometimes doing this<br> doesn't mean folks should expect some sort of prompt<br> turnaround on special requests. <br> In general, I am not sitting at my desk waiting<br> for code orders. I'm doing something else. If I get to<br> your request right away, then good for you. If I don't,<br> then I'll get to it when I get to it. <br> <br> <br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="55"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">The queeg daemon is a horrendous mess. It's inefficient and frankly offensive.</span><br> <br> I'm not an especially gifted programmer. In fact, I view<br> myself rather as a <a href="http://en.wikipedia.org/wiki/Pakled">Pakled</a> from the Star Trek series. I<br> look for things that make the code go. I look for things<br> that make the code strong. Sometimes, because I am not<br> a trained or professional programmer, things are done<br> in a way that shock the conscience of more sophisticated <br> practitioners.<br> If you find such code (and I do hope it is rare),<br> bringing to my attention that it has been implemented in a <br> wretched way doesn't help me. I know that. I wrote it. If <br> you want to help, send me an email with the fixed code.<br> <big> <br> </big><span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="56"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">You implemented my code but didn't give me credit.</span><br> <br> Whoops. Send me an email telling me where I goofed and I'll fix it.<br> <br> <br> <span style="text-decoration: underline; font-weight: bold;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="57"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="text-decoration: underline; font-weight: bold;">Intermud mail doesn't work</span><br> <br> Yes it does. If you tried to send intermud mail to someone<br> with Dead Souls and it failed, then one or more of the following is true:<br> <br> * You are using a Dead Souls version below 2.4.1.<br> * The recipient is using a Dead Souls version below 2.4.1.<br> * The recipient has disabled their OOB service.<br> * The recipient has disabled their INET service.<br> * The recipient is firewalled and cannot accept OOB connections.<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="58"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">The admintool menus let you pick options that aren't visible</span><br> <br> I can't decide whether this is a feature or a bug. I'm<br> leaning toward "laziness".<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="59"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">What does locking the mud do, exactly?</span><br> <br> When the mud is locked, only members of the authorized<br> groups are permitted to log in. By default, these<br> groups are SECURE, ASSIST, ELDER, and TEST. Anyone<br> who is not a member of these groups, whether they are<br> a creator or a player, is prevented from logging in.<br> <br> To lock the mud, use the admintool command, option a.<br> To add people to groups, use the admintool command, option v.<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="60"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">The race help output is inadequate for role-playing. How do I change it?</span><br> <br> By default, <span style="font-weight: bold;">help human</span> will output various characteristics<br> of the human race, as known to the race daemon. If you<br> want instead to provide your own help data on the history and<br> lore of humans, simply create a file called /doc/help/races/human<br> and put your information in it. That information will then<br> be what is displayed when requesting help on that race.<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="61"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">I need to know what features to expect in the next release so I don't </span><br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;">waste time duplicating effort</span><br> </big><big style="font-family: courier new,courier,monospace;"><small><big><span style="text-decoration: underline; font-weight: bold;"></span><br> Visit <a href="http://dead-souls.net/RELEASE_NOTES">http://dead-souls.net/RELEASE_NOTES</a> for information on <br> the latest releases and what they contain. The topmost<br> version is usually not yet available for download, and<br> is listed so that folks know what's coming in the<br> next release. If this is so the version name will have<br> "(unreleased)" next to it.<br> <br> As of 2.0r19, the dsversion command is available to<br> allow you to query that site from the mud itself.<span style="font-weight: bold;"></span><br> <br> </big></small></big><big style="font-family: courier new,courier,monospace;"><br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="62"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">You need a development roadmap and task tracking</span><br> <br> No, I don't. If I had developers and teams and<br> such things, then I'd use all the fancy project<br> management stuff available on Sourceforge.<br> But I don't want to manage developers,<br> I want to lib code. <br> </big><big style="font-family: courier new,courier,monospace;"><br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="63"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">How do I update a sefun without rebooting the mud?</span><br> <br> To have your new nit_pick() sefun take effect in the<br> running mud, you might do something like this:<br> <br> <span style="font-weight: bold;">update /secure/sefun/nit_pick.c</span><br style="font-weight: bold;"> <br style="font-weight: bold;"> <span style="font-weight: bold;">update /secure/sefun/sefun.c<br> <br> <br> <span style="text-decoration: underline;"></span></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="64"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold;"><span style="text-decoration: underline;">My new sefun updates but I can't seem to use it.</span><br> </span><br> Make sure the sefun is prototyped in /secure/sefun/sefun.h<br> <br> If the sefun is in a new file you created, make sure<br> that /secure/sefun/sefun.c inherits that file.<span style="font-weight: bold;"><br> <br> <br style="text-decoration: underline;"> <span style="text-decoration: underline;"></span></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="65"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold;"><span style="text-decoration: underline;">What's the point of the apostrophe-stripping for args in lib/command.c?</span><br> <br> </span>It was cheap workaround for a parser problem. Dead Souls 2.1 and<br> above no longer implement this, as the driver issue has been <br> corrected.<br> <br> <br style="text-decoration: underline;"> <span style="font-weight: bold;"><span style="text-decoration: underline;"></span></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="66"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold;"><span style="text-decoration: underline;">How does one achieve 'high mortal' or 'ambassador' positions?</span><br> <br> </span>Those are legacy positions from DS v1/Nightmare IV/3. They are<br> basically groups, managed by an arch with admintool, which<br> can be granted privileges not normally enjoyed by mortals.<br> In the current implementation of Dead Souls, those<br> positions are vestigial. You can implement them on your<br> own mud however you please.<br> <span style="font-weight: bold;"><br> <br> <span style="text-decoration: underline;"></span></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="67"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold;"><span style="text-decoration: underline;">I would like XYZ and PDQ to happen every time the mud boots</span><br> <br> </span>The most common way to have this happen is to add<br> your daemon (and typically that's what you'll<br> want to start at boot) to /secure/cfg/preload.cfg .<br> This will ensure that it gets loaded<br> before the mud accepts any connections. It has the<br> added advantage of being included in the list of daemons<br> that the mud periodically checks and restarts if they<br> have died.<br> <br> If it isn't a daemon, but rather some<br> specific function you want to happen at boot, simply<br> add the relevant code to /secure/daemon/autoexec.c<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="68"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">I can't login! I keep getting: "It seems some work is being </span><br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;">done right now, try later."</span><br> <br> This is bad. What this means is that some<br> files that are needed in order to load your player <br> object cannot be loaded. It can be any of a very large<br> number of files, which is the problem. Usually this<br> happens if you've been, for example, messing around<br> with player.c, then broke it, and rebooted the mud. Now<br> since player.c can't be loaded, you're locked out.<br> It could be any of the files loaded by your<br> player object, or other daemon files needed by your<br> login. The only way to narrow down the possible list of<br> files you corrupted is by examining the output of the<br> console (the window where you type the command line<br> to start the mud) and reviewing log/runtime and <br> log/catch for clues.<br> Once you've found the culprit, either fix it,<br> or replace it with the original version from the<br> Dead Souls distribution package.<br> <span style="font-weight: bold;"><br> </span><br> <span style="font-weight: bold; text-decoration: underline;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="69"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;">I had a really great idea that revolutionizes ds and you </span><br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;">refuse to include it. I am forking ds development and </span><br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;">making my dream come true.</span><br> <br> Ok then, have fun. All I ask is that you give your<br> project a name that isn't going to confuse people<br> as to which lib is which. Confusing your user base <br> isn't a good way to get started on such an enterprise.<br> Send us a post card once in a while.<br> <br> </big><big style="font-family: courier new,courier,monospace;"><br style="text-decoration: underline; font-weight: bold;"> <span style="text-decoration: underline; font-weight: bold;"></span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="70"></a></span></big><big style="font-family: courier new,courier,monospace;"><span style="text-decoration: underline; font-weight: bold;">What do the version numbers mean?</span><br> <br> 2.0r16 means "Major version 2, minor version 0, release number 16".<br> Releases happen pretty frequently, to add functionality and fix bugs<br> from the previous release. When the basic functionality of a minor<br> version is as bug free as reasonably possible, a new minor version<br> change happens.<br> Major version number changes are very rare and represent a<br> vast difference from the old major version. Versions 1 and 2 of<br> Dead Souls are so different as to be largely incompatible with each<br> other's code.<br> <br> As of this writing, 2.4.1 is released as the current stable version.<br> <br> <br> </big><big style="font-family: courier new,courier,monospace;"><a name="71"></a><span style="font-weight: bold; text-decoration: underline;">The Dead Souls router is down.</span><br> <br> Use the switchrouter command to change between <br> routers. The new default I3 router for Dead Souls muds is called<br> *yatmim. So far it's been dramatically more reliable than<br> the old intermud.org router, which was known as *gjs.<br> <br> If the router you are on is down, try using the switchrouter<br> command to connect to a backup. As of this writing, the *i4<br> and *yatmim routers serve as mirrors for each other, so<br> that connecting to one will give you access to the same muds<br> as those on the other.<br> <br> For more information on switching between routers, type:<br> <br> <span style="font-weight: bold;">help switchrouter</span><br> <br> If the *yatmim router goes down for more than a<br> few minutes, make sure to check the <a href="router.html">router page</a> to see if<br> the IP address or port have changed.<br> <br> <br> </big><big style="font-family: courier new,courier,monospace;"><a name="72"></a><span style="font-weight: bold; text-decoration: underline;">I'm going to totally revamp <insert highly complex system here>.</span><br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;">Will that be difficult?</span><br> <br> This is, surprisingly, a fairly common question.<br> Basically, the answer is:<br> <br> "If you have to ask, then the answer is yes."<br> <br> It's not an impossible task to, say, rewrite<br> combat to be just like the combat you're used to on LeetFooMud.<br> It's totally doable, and not *all* that difficult for<br> an experienced coder.<br> <br> But if you're new to LPC, you need to concentrate<br> on getting the basics down before you put that cart in<br> front of that horse. Let me phrase it like this:<br> <br> "If there's any part of the Creator's Manual you don't<br> know and understand, you aren't ready to do lib coding yet."<br> <br> If you are at 100% grok with the manual, then<br> please read <a href="http://dead-souls.net/doc/guide/chapter08">chapter 8 of the Admin's Guide</a> to get started<br> on serious lib work. <br> <br> <br> </big><big style="font-family: courier new,courier,monospace;"><a name="73"></a><span style="text-decoration: underline; font-weight: bold;">I've hired an area coder to make a new domain. I want her</span><br style="text-decoration: underline; font-weight: bold;"> <span style="text-decoration: underline; font-weight: bold;">to be able to use QCS in /domains/MistyDragonShireMysts</span><br> <br> The default behavior of QCS is to try to figure out<br> what directory makes most sense to write in. It assumes<br> that it's only going to write into areas you have write<br> permission to. Since your new coder doesn't have write<br> access to /domains/</big><big style="font-family: courier new,courier,monospace;">MistyDragonShireMysts, QCS instead will<br> write to the next most logical place: her home area directory.<br> <br> This is true even if you use the <span style="font-weight: bold;">grant</span> command <br> to enhance her access. QCS's authentication mechanism is<br> entirely separate from the grant/access system, which works<br> fine for non-QCS editing.<br> <br> To make your new domain, use the domaincreate command:<br> <br> <span style="font-weight: bold;">domaincreate MistyDragonShireMysts</span><br> <br> To enable your new coder to use QCS in that domain,<br> use the <span style="font-weight: bold;">domainadmin</span> command to manage the admins of that<br> domain. A domain may have more than one admin at the same time.<br> <br> For more information on domainadmin, type:<br> <span style="font-weight: bold;">help domainadmin</span><br> <br> For more details on where QCS puts things, be sure<br> to read <a href="http://dead-souls.net/ds-creator-faq.html#5.1">this Creator FAQ section</a>.<br> <br> <br> <a name="74"></a><span style="font-weight: bold; text-decoration: underline;">How does player voting work?</span><br> <br> The voting system enables players to nominate and<br> vote for class leaders. A Fighter can nominate and vote for<br> his Fighter leader, Mages can vote for a Mage leader, etc.<br> The nomination period usually lasts about a week, then<br> nomination closes and voting begins. Voting ends when<br> an arch enters the voting room (it's in Town Hall) and<br> issues the appropriate command. See the voting room printed<br> material for instructions.<br> When the voting is ended, the winner becomes<br> council member. The high council is composed of <br> representatives (the leaders) of the classes. What kinds<br> of authority the council should have is entirely up to<br> you and your mud. No default powers are enabled, you'll<br> need to code your own sets of privileges and responsibilities<br> for your councilors.<br> Because creators have no business meddling in the<br> affairs of mortals, they cannot vote, regardless of their<br> class affiliation.<br> <br> <br> <a name="75"></a><span style="font-weight: bold; text-decoration: underline;">What are "estates"?</span><br> <br> Any references to estates in Dead Souls code or<br> documentation are artifacts of pre-1.1 Nightmare code. <br> Estates in the Nightmare lib were player-owned areas,<br> which were granted to players of specific rank, status,<br> etc who could afford to buy the rights to them.<br> Estate support in Dead Souls is planned for post 2.1.<br> <br> <br> <a name="76"></a><span style="font-weight: bold; text-decoration: underline;">What are "events"?</span><br> <br> Some things should happen regularly. Perhaps<br> log rotation, or backing up some .o files. The events<br> daemon, or EVENTS_D handles this. To add or remove<br> events use the add_event() sefun. For example, to add the<br> log rotation event, I issued this command:<br> <br> <span style="font-weight: bold;">eval return add_event("/secure/daemon/log","/secure/daemon/log","RotateLogs",({ }),7200,1)</span><br> <br> Which said: "Every two hours, call the RotateLogs function in the log daemon."<br> <br> To see what events have been scheduled, type:<br> <span style="font-weight: bold;">events</span><br> <br> To remove an event from the events schedule, find its<br> next runtime, and use it as an argument to the remove_event() sefun,<br> like this:<br> <br> </big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold;">events</span><br> <br> The following events are pending:<br> 1145159511 RotateLogs Sun Apr 16 03:51:51 2006 EDT<br> <br> <span style="font-weight: bold;">eval return remove_event(</span></big><big style="font-weight: bold; font-family: courier new,courier,monospace;">1145159511)<br> <br style="font-family: courier new,courier,monospace;"> </big><br style="font-family: courier new,courier,monospace;"> <big style="font-family: courier new,courier,monospace;"><a name="77"></a><span style="font-weight: bold; text-decoration: underline;">Where does user monitor data go?</span><br> <br> When you monitor someone, or if you enable<br> GLOBAL_MONITOR, monitor data is logged into /secure/log/adm.<br> <br> <br> </big><big style="font-family: courier new,courier,monospace;"><a name="78"></a><span style="font-weight: bold; text-decoration: underline;">How would you set a race to be selectable by new players?</span><br> <br> If the race already exists, and it is, say, kobold, type: <br> <span style="font-weight: bold;">removerace kobold</span> <br> <br> Then see: <a href="http://dead-souls.net/ds-admin-faq.html#10">http://dead-souls.net/ds-admin-faq.html#10</a><br> <br> </big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold;"><br> <br> </span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold;"><a name="79"></a><span style="text-decoration: underline;">Where is emote data kept? Can I edit it by hand?</span></span><br style="font-weight: bold;"> <br> Emote data is saved in /save/soul.o<br> <br> You must never, ever, edit an .o file. Period. It<br> is possible to do it without corrupting data, but I do<br> not condone it, I don't recommend it, and if you fux your<br> mud because you did it anyway, I won't support it.<br> <br> If you edit an .o file, and now things don't<br> work, it is your own fault. If you didn't back things up<br> before editing system files, there's nothing anyone can<br> do to retroactively save your data. <br> <br> <br> <a name="80"></a><span style="font-weight: bold; text-decoration: underline;">What are .h and .o files? Where are they kept?</span><br> <br> Files with the extension of .h are called header<br> files. They have code or variables that are helpful when<br> creating some things, so that an armor object uses<br> armor_types.h to load some useful information without having<br> to hard code it every time you make a piece of armor.<br> These global header files are most typically found in<br> /include or /secure/include , although local header files<br> that are specific to a particular directory (such as<br> header files for lib objects) are commonly found in an<br> ./include subdirectory of the given directory.<br> <br> Files with an .o extension are object persistence<br> files. They contain data, not code. There are some things<br> that happen in the lib that should persist across<br> reboots, such as races, classes, economy, etc. You could<br> just hard code this stuff, but what if you need to make<br> changes? What if your economy needs to be flexible to <br> accommodate inflation? What if you want to be able to<br> add or remove emotes on the fly? <br> Persistence files allow you to save data which<br> is subject to manipulation, but which needs to be available<br> in case the mud restarts.<br> <br> Because .o files tend to contain information <br> that is structured and formatted in a very specific way,<br> they should never be edited by hand. They are intended to<br> be loaded and saved by objects like daemons. Monkeying<br> around with the contents of an .o file is an excellent <br> way to damage your mud.<br> Another reason to avoid it is that even if you<br> make a valid change, it's liable to be overwritten unless<br> you fully understand the daemon that uses that file.<br> <br> <br> <a name="81"></a><span style="font-weight: bold; text-decoration: underline;">But my friend forgot his password! I *have* to edit his playerfile!</span><br> <br> Use the command: <span style="font-weight: bold;">resetpasswd</span><br> <br> <br> <a name="82"></a><span style="font-weight: bold; text-decoration: underline;">How do I change my mud's name?</span><br> <br> 1) type: <span style="font-weight: bold;">admintool</span><br> <br> 2) select the "Driver" menu option<br> <br> 3) select the "change the MUD's name" option<br> <br> 4) answer yes to rebooting<br> <br> <br> <a name="83"></a><span style="font-weight: bold; text-decoration: underline;">Help! I locked myself out!</span><br> <br> For UNIX administrators, it is natural to create an<br> admin character for special admin tasks, and then use<br> a regular character for routine stuff.<br> There's nothing wrong with that, but if you<br> lock the mud, you'll need to have your regular character<br> be in either the ELDER or TEST groups in order to log<br> in. For more information on modifying groups: <span style="font-weight: bold;">help admintool</span><br> <br> <br> <a name="84"></a><span style="font-weight: bold; text-decoration: underline;">What are the privileges associated with the groups in groups.cfg?</span><br> <br> <span style="text-decoration: underline;">SECURE</span> gives you 100% admin privs to the mud.<br> <br> <span style="text-decoration: underline;">ASSIST</span> allows reading to almost all files in /secure, but<br> doesn't provide write access to those files. Assist admins<br> do report as archp() == 1, so access to writes based on <br> that pointer should be carefully managed. Assist admins<br> can also read the contents of player directories. See<br> /secure/cg/groups/read.cfg and write.cfg for more detail.<br> <br> <span style="text-decoration: underline;">ELDER</span> is just a nice thing to have show up in the who list.<br> <br> <span style="text-decoration: underline;">TEST</span> lets the lib know you are a test character.<br> <br> All members of the above four groups are permitted to log in when<br> the mud is locked. <br> <br> <span style="text-decoration: underline;">INTERMUD</span> lets the member use intermud, if RESTRICTED_INTERMUD<br> is enabled.<br> <br> Any additional special groups or privileges you'll have to code yourself.<br> <br> <br> <a name="85"></a><span style="font-weight: bold; text-decoration: underline;">Why does the documentation refer to LIB_ARMOUR and armour_types.h?</span><br> <br> The LPC documentation in the Creator's Manual was written by<br> Descartes. I have been reluctant to make any changes to it, <br> because first, it isn't mine, and second, deviations from the<br> current lib are very small.<br> <br> In this particular case, you evidently have noted that<br> the lib uses American spelling for "armor". The original Dead<br> Souls distribution, version 1, and the Nightmare lib used the<br> British spelling of "armour".<br> Aside from finding it unnecessary and affected, I<br> felt it was distracting and potentially confusing for coders,<br> because it was the only word in the lib spelled this way. There<br> were no instances of "colour" or "honour", etc. Rather than<br> make things uniform by Britishizing them, I made them uniform<br> by Americanizing them.<br> To this day I don't know the reason for that original<br> spelling. It may be that Descartes intended to make a <br> distinction between, say, an armoury that sells things you<br> wear, and an armory that sells things you wield.<br> If I remember to, I'll ask him next time we talk.<br> <br> <br> <a name="86"></a><span style="font-weight: bold; text-decoration: underline;">Where are read/write restrictions kept?</span><br> <br> The global perms are listed in /secure/cfg/read.cfg<br> and /secure/cfg/write.cfg . However, additional permissions<br> may be available to a user based on the access privileges<br> defined in a given adm/ subdirectory. See <span style="font-weight: bold;">help grant</span> for<br> more details on that system.<br> </big><big style="font-family: courier new,courier,monospace;"><br> The permissions logic goes something like this:<br> <br> <span style="font-weight: bold;">uid/euid/gid</span>:<br> 1) These absolutely do not work in Dead Souls. It is not a supported security model.<br> <br style="font-weight: bold;"> <span style="font-weight: bold;">read.cfg</span>:<br> 1) If a file/directory is not in this file, anyone can read it.<br> 2) If a file/directory is in this file, only the specified groups/people can read it.<br> <br> <span style="font-weight: bold;">write.cfg</span>:<br> 1) If a file/directory is not in this file, only admins can write to it.<br> 2) If a file/directory is in this file, admins + the groups/people specified can write to it.<br> <br> <span style="font-weight: bold;">grant command</span>:<br> 1) A creator may use "grant" to give read and/or write access to files under her control.<br> <br> <span style="font-weight: bold;">default</span>:<br> 1) Objects in the /secure dir can arbitrarily limit access to their data if coded to do so.<br> 2) Anything not explained by the above rules is a security policy defined in /secure/daemon/master.c</big><br> <big style="font-family: courier new,courier,monospace;"><br> <br> </big><big style="font-family: courier new,courier,monospace;"><a name="87"></a><span style="font-weight: bold; text-decoration: underline;">I need to test day/night descriptions, but I can't wait around all day.</span><br> <br> Type: <span style="font-weight: bold;">help ticktock</span><br> <br> <br> <a name="88"></a><span style="font-weight: bold; text-decoration: underline;">How can I change the default prompt? Can I make it dynamic?</span><br> <br> The default prompt is defined in /secure/include/config.h .<br> <br> In Dead Souls 2.4.1 and above, you can use the prompt command<br> to change the default to something else, and you can even <br> have dynamic prompts which indicate your health status, etc.<br> Type:<br> <br> <span style="font-weight: bold;">help prompt</span><br> <br> <br> <a name="89"></a><span style="font-weight: bold; text-decoration: underline;">What is "unguarded"?</span><br> <br> Unguarded is the mechanism used to obviate the stack<br> security model. Under some tightly controlled circumstances, it<br> may be desirable to have an object access privileged data, even though<br> an unprivileged object is in the command stack.<br> <br> When the unguarded() sefun is called, the object containing<br> the sefun overrides the security permissions on any other object<br> in the stack, allowing, for example, an unprivileged object <br> to read from your home directory.<br> <br> See <span style="font-weight: bold;">man unguarded</span> for syntax and usage, and examine<br> files like /secure/obj/snooper.c for examples. Use with <span style="font-weight: bold;">EXTREME</span> caution.<br> <br> <br> </big><big style="font-family: courier new,courier,monospace;"><a name="90"></a><span style="font-weight: bold; text-decoration: underline;">Is intermud communication secure?</span><br> <br> Not in the slightest. Here's how it works:<br> <br> <span style="font-weight: bold;">1)</span> Whoever is running the router has 100% access to every bit<br> of communication that happens across that intermud network. All<br> messages are plaintext, and although I personally can promise<br> I don't read "private" messages, there is no way for you to<br> be sure I'm not lying.<br> <br> <span style="font-weight: bold;">2)</span> All muds connected to an i3 router can hear anything that<br> is said on public channels. <br> <br> <span style="font-weight: bold;">3)</span> Any admin on any mud has 100% access to the i3 packet data<br> that comes in and out, meaning they can listen to "private" tells<br> between someone on that mud and someone on another mud.<br> <br> <span style="font-weight: bold;">4)</span> Nobody on any client mud is able to "sniff" or "snoop" data from<br> tells between other muds. If Alice@AlphaMud and Bob@BravoMud are<br> having a heated "tell" discussion, Carol@CharlieMud can't listen in,<br> even if she's an admin on her mud. However, Dave@DeltaMud is<br> the admin on the i3 router mud, and he can "hear" everything.<br> <br> <span style="font-weight: bold;">5)</span> Local channels (cre, admin, newbie, etc) do not get broadcast<br> to the i3 router. There is one exception to this. Dead Souls 2.0r22<br> had a bug that did just this thing. This bug is not<br> seen in earlier versions, and later versions have been fixed to<br> prevent this. However, any local admin has full access to any<br> local channel.<br> <br> <span style="font-weight: bold;">6)</span> Since this is all plaintext, anyone at all along the<br> network stream (you ISP, their ISP, etc) can listen in,<br> whether at the intermud point, or at the point where you<br> or your message target telnetted into their mud.<br> <br> <br> Therefore: do not tell secrets across intermud.<br> <br> <br> <br> <a name="91"></a><span style="font-weight: bold; text-decoration: underline;">What are some do's and don'ts?</span><br> <br> There aren't too many, but they tend to<br> be important, so try to follow these guidelines:<br> <br> - Do not allow anyone other than full admins (people in<br> the SECURE group of /secure/cfg/groups.cfg) to edit<br> /lib files. Things like /lib/player.c and such must only<br> ever by edited by SECURE folks, because otherwise someone<br> can use that editing to elevate themselves to full<br> admin privileges. Do not mess with groups.cfg to let<br> normal creators edit /lib files, do not modify the mud to<br> allow write access there. If you need help with those files,<br> hire someone you trust to be full admin. Or simply<br> have folks submit code to you that you review before you<br> drop it into /lib yourself. By default, neither normal<br> creators nor assistant admins can write to /lib, and this<br> default is the way you should leave it.<br> <br> - Don't mess with /realms/template/ unless you know exactly<br> what you're doing. Breaking anything there will hose up<br> new creators. The same goes for /secure/sefun/make_workroom.c<br> <br> - Don't be too adventurous with your admin character. I've<br> had to change admin tools so people can't remove themselves<br> from admin groups, and so that people can't demote themselves<br> from creator to player...not because I thought maybe someone<br> might do it, but because people <span style="font-weight: bold; font-style: italic;">have</span> done it. If you play games<br> with your admin's body, gender, stats, whatever, it probably won't be<br> fatal, but then, it might. Don't experiment on your admin. Use<br> a test character.<br> <br> - Always always always back up any lib files you mess<br> with. The <span style="font-weight: bold;">bk</span> and <span style="font-weight: bold;">restore</span> commands are your best friends.<br> <br> - Don't let just anyone off the street become Creator. You<br> need to know and trust your creators.<br> <br> - Don't let a week go by without a full backup of your mud.<br> <br> - Don't use color codes in your mud name. It makes people on<br> intermud cranky.<br> <br> - Don't edit files that end in ".o". Those are data files,<br> and are very very easy to corrupt if you edit them by hand,<br> possibly damaging your mud.<br> <br> - Don't assume it's anyone's responsibility but your own <br> to teach you LPC and how to use Dead Souls.<br> <br> - You should avoid changing your lib name unless you have<br> a good reason for doing so. Changing from "Dead Souls" to<br> "MyLib" or whatever probably seems like a fun thing to do, but<br> makes you look like you're trying to claim credit that is not due.<br> People really do notice, and really can tell. It makes you look bad.<br> Keep in mind that most of what is currently in Dead Souls<br> was written exclusively by me<a href="#91a"><span style="font-weight: bold;">*</span></a>, and yet I have not changed the name.<br> Similarly, unless you're actually branching MudOS, don't change<br> the name that is reported by it. Leaving the driver and lib names<br> alone is perhaps the one way you have to demonstrate your<br> gratitude to the dozens of developers that made them available<br> to you.<br> <br> <small><small><a name="91a"></a><span style="font-weight: bold;">*</span> After removing docs from each, the uncompressed lib material<br> in DS1.1 is about 5 megs contained in about 1000 files and<br> directories, and DS2.4 is about 12 megs contained in about 2300<br> files and directories. </small></small><br> <br> <br> <a style="font-weight: bold; text-decoration: underline;" name="101"></a><span style="font-weight: bold; text-decoration: underline;"><a name="92"></a>Is DS2 in any way suited to create a non-English mud from/with it?</span><br> <br> <span style="font-weight: bold;">First the yes:</span> There is at least one mud that I know of that uses Dead<br> Souls that is in Russian. I think they might have had some trouble using<br> the Cyrillic alphabet, but I think they overcame it.<br> <br> For a while there was a Dead Souls mud in Korean. I don't<br> know the name of it, because I never understood anything they said.<br> As far as I know, they are not running today.<br> <br> There's very little about the lib that is incompatible with a different<br> language. You can use typical ascii characters, meaning you can<br> use accents, and so on. You room descriptions and messages can be<br> in most languages you want that you can express in ascii, and (apparently)<br> even some that you can't.<br> <br> <span style="font-weight: bold;">Now the no:</span> The biggest obstacle to making Dead Souls international<br> is the parser. The "natural language parser" is in the driver, not the lib, and<br> it is optimized for English. English is an "analytic" language, so that<br> word order dictates the meaning of a sentence. With German, a "synthetic"<br> language, word order is less important than the pre/in/suffix inflection<br> and pronoun/noun declination. This kind of sophistication is completely<br> beyond what the MudOS parser is designed to do.<br> This means that a Dead Souls mud in German would have a hard time<br> being 100% grammatically correct in its parsing system.<br> <br> <span style="font-weight: bold;">However...</span><br> <br> If you're willing to make compromises with grammar, it can be done to<br> a certain extent. For example, If you make "mein", "meiner", "meine", "meines", "meinen",<br> and "meinem" all applicable to all possessive situations, then it can work fine.<br> To a grammar purist this is a horrible thing to do, but it is available as an option,<br> if you're willing to do some rewriting of the mudlib.<br> <br> German and Russian are statistical outliers, though. Many European<br> languages lack noun cases, and for them, using Dead Souls would be much<br> easier, in terms of the parser. You still have to deal with agglutination,<br> though, such as single-word intransitives or reflexives.<br> <br> So, the summary answer is:<br> <br> * Yes, you can use Dead Souls with non-English languages for<br> descriptions and messages.<br> <br> * Depending on the language, you will have to make grammar compromises<br> if you intend to use the MudOS parser for command processing.<br> <br> * To convert properly Dead Souls to another language is a non-trivial task that<br> involves reworking the master object, various command/verb system objects, and<br> possibly the MudOS parser to a degree. It *is* possible, but it's definitely not<br> a project for the faint of heart.<br> <br> * You can avoid this by not using the MudOS parser, and using the<br> old-style command system, which depends on add_actions and command<br> files to accomplish the job of parsing. This also requires some substantial<br> lib coding. It is more code you'd have to write, but it would be<br> less advanced and complicated than refitting the natural language parser.<br> <br> * I enjoy the study of languages and grammar, so I'd be delighted to help<br> you if you decided to take on that project. However, my role would be<br> of a "helper". I cannot take on the burden of doing the majority of the<br> grunt work code for someone else's project.<br> <br> * I wish I could tell you "Yes, and it's easy." The answer though, is "Yes, but it's hard."<br> <br> </big><big style="font-family: courier new,courier,monospace;"><br> <a name="93"></a><span style="font-weight: bold; text-decoration: underline;">I keep losing my intermud connection, and sometimes I'm half connected</span><br style="font-weight: bold; text-decoration: underline;"> <br> This happens most frequently when using a wireless connection.<br> Intermud is apparently not at all tolerant of the casual manner in which<br> many wireless connections work, and as a result your intermud<br> connectivity will likely suffer. Perhaps this is old-school of me,<br> but I think it's reasonable to suggest that you run your mud on<br> a land-line network connection.<br> <br> Another source of this problem is if you're running off of<br> a home broadband connection. Some of these DSL or cable modems change<br> IP addresses very frequently, and your connection is interrupted during<br> those changes. If your connection is abruptly terminated and you come<br> back with a different IP, the intermud router may not handle this<br> gracefully. Perhaps this is old-school of me, but I think it's<br> reasonable to suggest that you run your mud on a static IP.<br> <br> Finally, I have seen some home firewall/router devices that<br> have an unconscionably short timeout for idle connections. There is<br> usually enough intermud traffic that your conenction will receive a<br> packet within five minutes, but if your timeout interval appears to be<br> shorter than that, you can tweak your intermud ping interval in<br> Dead Souls 2.5a19 and above by typing: <span style="font-weight: bold;">mudconfig pinginterval 120</span><br style="font-family: courier new,courier,monospace;"> </big><big style="font-family: courier new,courier,monospace;"></big><big style="font-family: courier new,courier,monospace;"><br style="font-family: courier new,courier,monospace;"> <span style="font-family: courier new,courier,monospace;"> That will shorten your intermud ping interval to 2 minutes,</span><br style="font-family: courier new,courier,monospace;"> <span style="font-family: courier new,courier,monospace;">which should keep most such aggressive timeouts from happening.<br> It's probably not a good idea to lower your interval below 2 minutes,<br> as your mud may wind up getting stuck in an i3 reconnect loop.<br style="font-family: courier new,courier,monospace;"> </span></big><big style="font-family: courier new,courier,monospace;"><br> Dead Souls muds below 2.5a19 may need to manually edit PING_INTERVAL<br> in /secure/include/config.h or /secure/daemon/ping.c and reboot.<br> <br style="font-family: courier new,courier,monospace;"> </big><big style="font-family: courier new,courier,monospace;"><br style="font-family: courier new,courier,monospace;"> <a style="font-family: courier new,courier,monospace;" name="94"></a><span style="font-weight: bold; text-decoration: underline; font-family: courier new,courier,monospace;">I heard I can run my old TMI-2/Nightmare 3/Skylib/Lima code on Dead Souls. Is that true?</span><br style="font-family: courier new,courier,monospace;"> <br style="font-family: courier new,courier,monospace;"> <span style="font-family: courier new,courier,monospace;"> Yes and no. Please read </span><a style="font-family: courier new,courier,monospace;" href="http://dead-souls.net/news.html#25aug06">this announcement</a><span style="font-family: courier new,courier,monospace;"> for the details.</span><br style="font-family: courier new,courier,monospace;"> <br style="font-family: courier new,courier,monospace;"> <br style="font-family: courier new,courier,monospace;"> <br style="font-family: courier new,courier,monospace;"> <a style="font-family: courier new,courier,monospace;" name="95"></a><span style="font-weight: bold; text-decoration: underline; font-family: courier new,courier,monospace;">Why is the version of Dead Souls 2 on Sourceforge different from the one on dead-souls.net?</span><br style="font-family: courier new,courier,monospace;"> <br style="font-family: courier new,courier,monospace;"> <span style="font-family: courier new,courier,monospace;"> It's a licensing thing. Sourceforge insists on only having Open Source</span><br style="font-family: courier new,courier,monospace;"> <span style="font-family: courier new,courier,monospace;">stuff on their site, so the version of Dead Souls you can download there is Open Source.<br> <br> Strictly speaking it's "public domain". For more information on that<br> version, see: </span></big><big style="font-family: courier new,courier,monospace;"><span style="font-family: courier new,courier,monospace;"></span></big><big style="font-family: courier new,courier,monospace;"><a href="http://dead-souls.net/ds-II-faq.html">http://dead-souls.net/ds-II-faq.html</a></big><br style="font-family: courier new,courier,monospace;"> <big style="font-family: courier new,courier,monospace;"><span style="font-family: courier new,courier,monospace;"></span><br style="font-family: courier new,courier,monospace;"> <span style="font-family: courier new,courier,monospace;"></span><span style="font-family: courier new,courier,monospace;">If all you're looking to do is run a mud, use the </span><a style="font-family: courier new,courier,monospace;" href="http://dead-souls.net/code/dead_souls.zip">latest version</a><span style="font-family: courier new,courier,monospace;"> from the <br> Dead Souls site. </span><span style="font-family: courier new,courier,monospace;">Mud admins don't need to worry about licensing issues. Only <br> those looking to distribute </span><span style="font-family: courier new,courier,monospace;">or fork DS should be concerned with the licensing.<br> <br> <span style="font-weight: bold;">Short answer</span>: If you don't care what license you use, then you should<br> use the most featured and most current stable version, which is: </span></big><big style="font-family: courier new,courier,monospace;"><a style="font-family: courier new,courier,monospace;" href="http://dead-souls.net/code/dead_souls.zip">http://dead-souls.net/code/dead_souls.zip</a><br> </big><big style="font-family: courier new,courier,monospace;"><span style="font-family: courier new,courier,monospace;"></span><big style="font-family: courier new,courier,monospace;"><br> <small><br> <a name="96"></a><span style="font-weight: bold; text-decoration: underline;">Good heavens! All I wanted to do was change combat, and it is so complicated!</span><br> <br> This is somewhat related to <a href="ds-admin-faq.html#72">question 72</a>, "Will changing XYZ be hard?". Some<br> folks have super-specific ideas about how their mudlib should look, and, for example,<br> want nothing to do with magic, or limbs, or have a problem with combat, etc. <br> I think you'll find Dead Souls 2 can be molded into whatever you want.<br> <br> However, I would suggest the if you're going to be spending more than<br> 50% of your time ripping things out of this lib, it might be that this<br> lib doesn't actually suit you. You might be happier with TMI-2,<br> for example, or Lima, or LPUn, etc. You can choose from a number of<br> libs from the LPMuds.net download page: <a href="http://lpmuds.net/downloads.html">http://lpmuds.net/downloads.html</a> <br> <br> If you're going to stick with DS2, though, then it's time for a re-assessment.<br> You're looking to modify big, complex systems in a codebase that's not<br> that familiar to you. The amazing thing is how far you've gotten<br> in so short a time, that you're up for haxing at the combat system. But<br> I'd like to make sure your expectations are set correctly: you <span style="font-style: italic;">are</span> messing<br> with complex systems fundamental to the operation of the mud. Of<br> course it'll be hard, until you're at a higher level of proficiency.<br> <br> So yes, changing big things is big work. You might want to stop<br> and think about whether this really is the lib for you, if you're<br> spending most of your time pulling stuff out. Or you might want to<br> slow down and work on modifying simpler objects and systems before<br> starting to chew on player object inheritables.<br> <br> Just a thought.<br> <br> <br> </small></big></big><big style="font-family: courier new,courier,monospace;"><a name="97"></a><span style="font-weight: bold; text-decoration: underline;">Editing in Windows is fine and call_out()'s are great. Your advice sucks!</span><br> <br> Astute or adventurous readers may have noticed that some of my<br> statements on the faq are only true up to a point. For example, if you<br> have a proper editor, and know what you're doing, there's nothing<br> inherently wrong with editing an .o file.<br> <br> Similarly, a call_out() here or there isn't wrong, and in fact is<br> the only way to do certain things elegantly (or at all).<br> <br> The reason for the stern warnings is that these, and other subjects,<br> involve judgment calls that a novice is not in a position to make. Are<br> you 100% sure that windows editor won't add dos formatting? Can you<br> be certain that your call_out won't bring the mud to its knees?<br> <br> Expert coders and admins can determine their risk level based on<br> experience. Until newcomers gain that experience, I try to dissuade<br> them from risky behavior, because getting tripped up in the starting<br> gate is no way to win a race.<br> <br> <br> </big><big style="font-family: courier new,courier,monospace;"><a name="98"></a><span style="font-weight: bold; text-decoration: underline;">I keep hearing that Dead Souls can do this or that, but I'm trying and can't.</span></big><br> <big style="font-family: courier new,courier,monospace;"><br> It may be that you downloaded the older, GPL version of<br> Dead Souls. The <a href="http://dead-souls.net/code/dead_souls.zip">latest, non-GPL version</a> may have the feature<br> you're looking for.<br> <br> When I refer to the latest version, I mean the latest<br> stable release. Cutting-edge "alpha" versions can be downloaded,<br> which include the <a href="http://dead-souls.net/RELEASE_NOTES">absolute latest stuff</a> I've been working on.<br> It may be that the feature you're talking about is only available<br> on the alpha version, and hasn't been included in a stable<br> release yet.<br> <br> You can <a href="http://dead-souls.net/code/alpha/">download the alpha</a> and run it, but you do so at your<br> own risk. Alpha versions have that name for a reason: they aren't<br> fully tested and are likely to have bugs.<br> <br> Alpha versions are numbered differently from stable releases.<br> For example, Dead Souls 2.1 alpha 8 is roughly equivalent to <br> (unreleased) Dead Souls 2.1 release 41. This is because the <br> alpha version changes less frequently than the "internal"<br> release.<br> <br> <br> <a name="99"></a><span style="font-weight: bold; text-decoration: underline;">You appear to have a FAQ for everything!</span><br> <br> I'm not kidding when I call these FAQ's. These questions<br> really do get asked frequently. <br> <br> When you start using Dead Souls, when you ask a question<br> on the DS line, you will more often than not get a FAQ url<br> from me. This is normal, and is meant to encourage you to<br> review the docs on your own.<br> <br> If you find that most of your questions <br> have FAQ's for answers, you should seriously consider changing<br> the way you're going about things. When you're not sure<br> about something, check the FAQ's first. That's what <br> they're there for.<br> <br> Eventually, if all your questions are answered by<br> existing documentation, you might find that you get fewer<br> and fewer responses from people, as they start <a href="http://dead-souls.net/code/ds2.8.4/lib/cmds/players/earmuff.c">tuning<br> you out</a>. Remember that most people refer to the docs: <br> the <a href="http://dead-souls.net/code/ds2.8.4/lib/doc/">help and manual files</a>, command help messages,<br> as well as the <a href="http://dead-souls.net/ds-admin-faq.html">admin</a>, <a href="http://dead-souls.net/ds-creator-faq.html">creator</a>, <a href="http://dead-souls.net/debugging.html">debugging</a>, and <a href="http://dead-souls.net/ds-faq.html">general</a><br> faqs. There's also the in-game <a href="http://dead-souls.net/doc/hbook/">player's handbook</a>, <a href="http://dead-souls.net/doc/manual/">creator's<br> manual</a>, and <a href="http://dead-souls.net/doc/guide/">admin guide</a>, as well as web based <a href="http://dead-souls.net/example.html">examples</a><br> and <a href="http://dead-souls.net/editor.html">tutorials</a>. There is also a <a href="http://lpmuds.net/forum/">Dead Souls support forum</a><br> which is searchable.<br> <br> There is a ton of documentation for DS, and most people<br> consult it regularly. If you keep asking questions that<br> are explicitly answered in docs, you may find yourself<br> in the awkward position of not having anyone listening<br> to you when you ask for something *not* documented.<br> <br> This <span style="font-weight: bold; font-style: italic;">doesn't</span> mean "Don't bother us with your newbieness".<br> <br> It means "First <a href="http://www.jargon.net/jargonfile/r/RTFM.html">RTFM</a>. If it's not in there, ask like<br> someone who has tried to find the answer, not like a <a href="http://en.wikipedia.org/wiki/Newbie">lazy<br> person who wants to be tutored</a>."<br> <br> A very detailed explanation of the reason for this<br> is at <a href="http://www.catb.org/%7Eesr/faqs/smart-questions.html">http://www.catb.org/~esr/faqs/smart-questions.html</a><br> (<span style="font-weight: bold;">NOTE:</span> The people that run that page have nothing to do<br> with Dead Souls. Do not try to ask them Dead Souls questions).<br> <br> I strongly urge you to read that entire document. If you've<br> never read it before, it will help you both on DS channels<br> and pretty much anywhere else where experts are available <br> for questions. I promise there will be benefit from <br> reading it.<br> <br> <br> <a name="100"></a><span style="font-weight: bold; text-decoration: underline;">If I XYZ, will that work?</span><br> <br> Try it and see. One of the drawbacks to having exhaustive<br> documentation is that folks can get the impression there's<br> an example of every test case. As with any coding (programming)<br> environment, you'll need to put in a lot of trial and<br> error to learn. If it doesn't work, and it's not documented,<br> go to the <a href="http://lpmuds.net/forum/">Dead Souls forum</a>, tell us what you did, where you <br> looked, and what you expected.<br> <br> <br> <a name="102"></a><span style="font-weight: bold; text-decoration: underline;">Hey you skipped question 101!</span><br> <br> Yeah I goofed the numbers and now people are using #101 for<br> something else. Oh well.<br> <br> <br> <a name="103"></a><span style="font-weight: bold; text-decoration: underline;">You are not taking my bug report very seriously.</span><br> <br> On the contrary. I am fanatically dedicated to making and keeping<br> Dead Souls the very best LP lib out there. As you spend more time<br> getting acquainted with the DS community and how things work,<br> you will see that I am deadly serious about bugs and they<br> usually get addressed quickly, if they prevent functionality.<br> At a minimum, legitimate bugs end up on my .plan.<br> <br> I know DS2 has bugs. I'm not under the illusion it's perfect,<br> or <a href="http://dead-souls.net/ds-admin-faq.html#55">that I'm a coding god</a>.<br> <br> However, I *do* get a lot of reports, and I have to prioritize<br> them. DS2 doesn't put food on the table for my family,<br> or keep the rain off our heads, so you'll need to keep in mind<br> that, as special and wonderful a person as you are, your<br> coding confusion is sadly not my personal emergency. <br> <br> Whether it's a critical security flaw or a typo in a<br> file's header, I can promise you I *will* address your problem, <br> unless another member of the community gets to it first. You <br> may have to just be patient.<br> <br> Another reason you may feel I'm not addressing your problem<br> is that you may not actually have a problem. Specifically,<br> if you are a new admin, and something doesn't work the way<br> you think it should, I advise you not to immediately<br> regard it as a bug. It may well *be* a bug, but assuming it<br> is so is not helpful. Consider the following scenarios:<br> <br> <span style="text-decoration: underline;">Scenario 1a:</span><br> Noobulator@LeetFooMUD <ds> BUG!! I can't see what's in my toy chest!!1!<br> Cratylus@Dead Souls Demo <ds> k. thx.<br> <br> <span style="text-decoration: underline;">Scenario 1b:</span><br> </big><big style="font-family: courier new,courier,monospace;">Noobulator@LeetFooMUD <ds> I type "l chest" but I can't see what's in there.<br> </big><big style="font-family: courier new,courier,monospace;">Cratylus@Dead Souls Demo <ds> try: look in chest<br> <br> Another common source of "bug reports" is what can charitably<br> be called operator error. For example:<br> <br> <span style="text-decoration: underline;">Scenario 2:</span><br> </big><big style="font-family: courier new,courier,monospace;">Noobulator@LeetFooMUD <ds> lol the schoolhouse is broken lol<br> </big><big style="font-family: courier new,courier,monospace;">Cratylus@Dead Souls Demo <ds> works for me<br> </big><big style="font-family: courier new,courier,monospace;">Noobulator@LeetFooMUD <ds> well, it's bugged. I get a million errors when I enter<br> </big><big style="font-family: courier new,courier,monospace;">Cratylus@Dead Souls Demo <ds> i can't reproduce the problem on my test muds.<br> <br> Ususally in such a scenario, it turns out that the person<br> was *sure* they didn't change anything...and later remember <br> they just took out this one line they didn't like from the<br> code. Or perhaps they removed the "dwarf" race, and so the<br> schoolhouse can't load because it has a dwarf npc in it. Or<br> maybe they....etc etc etc.<br> <br> If you report a bug, and you get something like this from me:<br> <br> "I can't reproduce your problem."<br> </big><big style="font-family: courier new,courier,monospace;"><br> It means I tried to get the same results, and couldn't.<br> You can interpret that as meaning that you've either<br> caused the problem yourself, or haven't given me<br> enough information to be able to test what you're<br> talking about.<br> </big><big style="font-family: courier new,courier,monospace;"><br> If you don't elaborate further, and you don't post your code and<br> error messages on the forum, then I'll assume you're going<br> to track down your coding mistake on your own.<br> <br> This doesn't mean I don't like you, or that I think you're<br> a loser, or that I don't care about bugs. It means I can't do<br> anything useful with the information you've given me. If<br> you can provide me with enough information so that I<br> can reproduce your problem, then I can work on fixing it.<br> Otherwise, what can I do?<br> <br> I would also ask you to be as open-minded as you would<br> like me to be. It isn't easy for me to be nice and polite...<br> I've actually a rather abrasive personality by default. If<br> I don't know you and I'm being polite to you, the chances are <br> that I'm really making an effort. The chances that you're<br> asking me something I've never heard, or reporting something<br> I'm unaware of, are small, if you are a new admin. If my<br> response is not to your liking (for example "check the Creator FAQ",<br> or "read the Player's Handbook"), getting hostile and defensive<br> with me won't help anything. Given how long I've been working<br> on this code, it's very likely that I've given you<br> extremely good advice, out of a genuine desire to have you succeed.<br> If you react in an adversarial manner, you may wind up<br> missing the technical usefulness of what I've said, and<br> discourage me from responding promptly to you in the future.<br> <br> And if it happens that I *am* wrong, which occurs frequently<br> enough, then simply following my instructions and explaining to<br> me how they didn't work is a perfect way of showing me my mistake.<br> <br> <br> <a name="104"></a><span style="font-weight: bold; text-decoration: underline;">Dude. Just answer my question. It's just one question, ffs.</span><br> <br> If there's one thing that fills me with dread it's the<br> prospect of having to RTFM for software I'm totally clueless<br> about. Technical people often are terrible docwriters, and it<br> can be a real challenge to tease out the information you need.<br> <br> In fact, sometimes it's necessary to understand what's in a<br> manual before you can read it, because of the level of complexity.<br> <br> So I sympathize with you. Looking at a pile of documentation<br> 99% of which you don't understand is daunting, and I truly<br> appreciate that fact, because I've been there.<br> <br> So I totally grok when you say "Look, please just tell me how<br> to eventNarfle the garthak(). Ok?" I feel it, man. I get you.<br> <br> What I want you to understand is that when I tell you to RTFM,<br> I'm *not* giving you the brush-off because I like it. I'm<br> doing it because to you it's one little question. To me, it's<br> Creator FAQ #X, which I've answered 24 times before, and for<br> which I sat down and wrote out an excruciatingly detailed<br> explanation. <br> <br> Take a look at this FAQ, and the others. There are literally<br> hundreds of entries, all of them written by me, in a way as<br> clear as I could make it. Take a look at the dozens of chapters<br> in the Admin Guide, Player's Handbook, and Creator's Manual.<br> That stuff didn't write itself.<br> <br> I didn't go through the laborious process of all that doc<br> work so that I could then do it over again every time someone<br> doesn't feel like doing a text search on the FAQ for eventNarfle.<br> <br> I'm not saying I'm too good to waste my time on you. I'm saying<br> I *HAVE* spent the time, I *did* make the effort, and I need<br> you to make just a little effort of your own as well.<br> <br> <br> <a name="105"></a><span style="font-weight: bold; text-decoration: underline;">Is it possible to upgrade to alpha without killing everything I've done?</span><br> <br> Probably. <br> <br> I have been asked whether people can upgrade from the stable<br> release to the alpha release, and my answer usually is something<br> along those lines. "I imagine so."<br> <br> And if asked how, I'll typically say something like "very carefully."<br> <br> The reason is that I do not encourage people to "upgrade" to <br> an alpha version. Alpha is by definition a rough draft, lightly<br> tested in new functionality, and unstable in the sense that<br> new alphas come out often. <br> <br> I do not put out alpha patches, and I do not make it easy to move<br> from a stable release to an alpha release. This is because if I<br> did make it easy, most people would do it, even beginners. This<br> would be problematic, because if they then run into an alpha bug,<br> they have to hear this from me: <br> <br> "Well, yeah. Alpha has some bugs. I'll get to that one eventually."<br> <br> And then people would get all gripey, or push me to fix it,<br> etc, and I wouldn't like that. The point of the stable release<br> is that it's stable. The point of alpha is that it's a testing<br> version of new stuff. If you want to go alpha, that's fine with<br> me, but you'll need to be experienced enough to do it on your own.<br> <br> I actually do want people to run alpha so that I can get<br> bugreports. But I don't want people running their main production<br> muds in alpha, because I will not be making commitments about<br> when bugfixes happen. I also don't want total newbies using<br> alpha, because I don't want to set them up for disappointment<br> when I don't treat their bugreport with extreme dispatch.<br> <br> So yes...it's a bit elitist of me, but for good reason. If you're<br> unsure about being able to safely upgrade to alpha from your<br> stable release...then don't.<br> <br> If you do it and screw up, restore from backup. You did back up<br> first, right?<br> <br> <br> </big><big style="font-family: courier new,courier,monospace;"><a name="106"></a><span style="font-weight: bold; text-decoration: underline;">How do I start an area?</span><br> <br> In Dead Souls, a set of related objects, creatures, and rooms that<br> add up to the creative vision of a builder is called a "domain". <br> It's the same thing as what other codebases refer to as an "area".<br> The terms are used interchangeably in the DS community.<br> <br> Dead Souls domains are comprised of a bunch of LPC files that live<br> in a specific directory. If the domain is to be called UlTiMaTe DBZ PWNAGE<br> then that directory (aka "folder") might be called /domains/dragonballz .<br> <br> To create that domain, you can use the <span style="font-weight: bold;">domaincreate</span> command, like so:<br> <br> <span style="font-weight: bold;">domaincreate dragonballz</span><br> <br> This will generate some standard directories and a start room for<br> the domain. At that point you can assign a domain admin with the<br> domainadmin command. For more info:<br> <br> <span style="font-weight: bold;">help domaincreate</span><br style="font-weight: bold;"> <span style="font-weight: bold;">help domainadmin</span><br> <br> <br> <a name="107"></a><span style="font-weight: bold; text-decoration: underline;">I don't want to use a cookie-cutter codebase</span><br> <br> So, this one time, these guys were checking out Dead Souls, and<br> one of them was seriously evaluating it, and his buddy was basically<br> coming up with reasons why some other lib was better...no matter<br> what. For example, the doubter guy was like "feh we don't want<br> a medieval mud", to which I replied "check out the firearms<br> code", and the reply was "lol, we have our own". You know, a<br> total no win sort of deal.<br> <br> And then the doubter guy said something that got me thinking.<br> Among his objections was one that I didn't quite understand.<br> <br> "We don't want a cookie-cutter lib," he said.<br> <br> Now, the lib he was advocating was no more or less cookie cutter<br> than DS, in my opinion, so it's not like I was dazzled by the<br> argument, so much as I was confused by the premise. Just what<br> the heck does "cookie cutter" mean?<br> <br> <span style="font-weight: bold; font-style: italic;">Cookie cutter as a bad thing:</span><br> <br> I think what people sometimes mean is that they don't want a mud<br> that looks like every other mud. Why bother logging into <br> LeetDikuHeavilyModifiedMud When DikuHighlyLeetCustomizedMud is <br> exactly the same, except the race and skill names are different?<br> <br> Similarly, there are a few dozen new Dead Souls muds out there.<br> They all mostly look the same...why not choose something that<br> isn't like Everyone Else?<br> <br> <span style="font-weight: bold; font-style: italic;">Cookie cutter as a good thing:</span><br> <br> I would suggest that there are some things for which "cookie<br> cutter" as a pejorative term is of limited impact. For example,<br> operating systems and air conditioners. There are things that,<br> when acquired, aren't acquired for their uniqueness. They are<br> acquired for their suitability to a specific application. <br> <br> In this sense, cookie cutter basically means widely adopted, and<br> from the standpoint of someone just trying to get a specific job<br> done, it is an advantage that there is wide adoption of what<br> you're working on.<br> <br> <span style="font-weight: bold; font-style: italic;">Where Dead Souls fits in:</span><br> <br> * A codebase distribution is, necessarily, cookie cutter. It's<br> a set of frameworks, presumably standardized during development,<br> that are the same for everyone when they first get it. From<br> this perspective, anything that you didn't 100% code yourself is<br> cookie cutter when you download it.<br> <br> * If you download a codebase and then just run it with no modifications,<br> then the problem in "originality" isn't the codebase, it's you.<br> <br> * Dead Souls includes a large (perhaps overlarge) amount of<br> rooms, creatures, objects, armor, and weapons in the stock distribution.<br> When you download and run it, you basically have a working mud with<br> quests and pubs and whatnot.<br> <br> <span style="text-decoration: underline;">YOU ARE NOT SUPPOSED TO USE THAT STUFF AS YOUR MUD</span><br> <br> Those are examples. They are sample areas. If your mud uses the sample<br> areas, they should be one or more of the following<br> <br> A) Temporary, while you're learning the lib<br> B) A joke<br> C) Not the areas new players see<br> <br> If you make no changes to the sample areas and present them to new<br> players as a mud, then yes, you have a cookie cutter mud, and you<br> really might as well just shut down, because only your friends will<br> log on to play, and not for very long.<br> <br> I think that the problem is that people see this large amount of<br> example material and think that they have to use it in their mud. If it <br> were so, then that would be sad and would doom every Dead Souls mud to be<br> exactly like every other.<br> <br> Instead, your mud can have a Roman Empire theme, with no hint of<br> the stock areas in sight when a player logs in. Just the robe and<br> sandals they wear and the classical city they must explore. That's<br> actually been done, by a mud called, aptly enough, <a href="telnet://209.209.80.36:9999">Ancient Rome</a>.<br> <br> Nothing prevents you from having your new players launched into<br> space the moment they log in, or find themselves suiting up for<br> a dive into Kaminoan oceans. It's a mud *codebase*, not a mud. <br> <br> Make it your own.<br> <br> <br> <a name="108"></a><span style="font-weight: bold; text-decoration: underline;">How do I make my new area the default domain where new people to arrive?</span><br> <br> <span style="font-weight: bold;"></span><span style="font-weight: bold;">1)</span> In your new domain, make sure that the room/ directory contains (working) rooms<br> with the following names:<br> <br> void.c<br> death.c<br> freezer.c<br> furnace.c<br> pod.c<br> wiz_hall.c<br> start.c<br> <br> See the rooms in /domains/default/room to see what these rooms do and how they work.<br> The domaincreate command generates these rooms by default.<br> <br> </big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold;">2)</span> Use the mudconfig command with the defaultdomain subcommand. If your new<br> default domain is </big><big style="font-family: courier new,courier,monospace;">/domains/dragonballz, you would type:<br> <br> <span style="font-weight: bold;">mudconfig defaultdomain </span></big><big style="font-family: courier new,courier,monospace; font-weight: bold;">/domains/dragonballz</big><br> <big style="font-family: courier new,courier,monospace;"><br> <span style="font-weight: bold;">3)</span> reboot (In theory you can do this without rebooting, but the instructions would be longer)<br> <br> <br> <a name="109"></a><span style="font-weight: bold; text-decoration: underline;">I heard passive mode on the FTP server works now</span><br> <br> If you are using Dead Souls 2.1 Alpha 19 and above, then yes,<br> passive mode FTP works now. There are some very important<br> things to keep in mind.<br> <br> <span style="font-weight: bold;">1)</span> Dead Souls now comes with two ftp servers. The original<br> is known to the inet system as ftp. The new, passive-mode <br> server is known to the inet system as hftp. To enable hftp,<br> run the following mudconfig commands:<br> <br> <span style="font-weight: bold;">mudconfig inet enable</span><br style="font-weight: bold;"> <br style="font-weight: bold;"> <span style="font-weight: bold;">mudconfig hftp enable</span><br> <br> <span style="font-weight: bold;">2)</span> The default port for the hftp server is 6 less than your<br> mud's telnet port. So if your mud runs on port 6666, then<br> the hftp server will be on port 6660. This can be changed<br> by editing /secure/include/network.h<br> <br> <span style="font-weight: bold;">3)</span> The mud must know its correct external ip address. You<br> must set this in the config.h file, preferably with the mudconfig<br> command, like so:<br> <br> <span style="font-weight: bold;">mudconfig hostip 111.222.333.444</span><br> <br> Where "111.222.333.444" would be the actual ip address that<br> the external machines will be trying to connect to. If<br> you do not know what this address is, leave the default<br> of "127.0.0.1" in the config file. This will let the ftp server<br> know it needs to try to figure out the address based on information<br> it gets from the intermud router.<br> <br> If it cannot gather this information, or you don't specify<br> a valid external ip address, then the passive-mode <br> ftp server will not be able to handle incoming connections <br> properly.<br> <br> <span style="font-weight: bold;">4)</span> Passive ftp support requires the use of an additional<br> range of ports. The default range of ports reserved by hftp<br> starts at -65 from your mud port, to -11 from your mud port.<br> This means that if your mud is running on port 6666, then<br> ports 6601 to 6655 are reserved for your passive mode transactions.<br> If there is a port conflict with another program, you'll<br> have problems. You can change the port range by editing<br> /secure/include/network.h<br> <br> <span style="font-weight: bold;">5)</span> Once it's been correctly configured and started, you<br> should be able to use passive mode for ftp transfers<br> even if your ftp client computer is behind a firewall.<br> <br> If the mud computer itself is behind a firewall, you will<br> need to make sure that the range of ports discussed<br> in the above section are being properly forwarded to<br> the mud computer. If the mud is behind a router, for <br> example, you may need to configure that router to<br> forward ports 6601 to 6655 to the mud computer.<br> <br> <span style="font-weight: bold;">6)</span> If all has gone well, then you can ftp to the mud's<br> hftp port, begin a passive session, and while away<br> the hours uploading and downloading to your heart's<br> content. On a command line ftp client, that might look<br> something like this:<br> <span style="color: rgb(204, 0, 0);"><br> myhost: /tmp/foo $ <span style="font-weight: bold;">ls -l</span><br> total 32<br> drwxr-xr-x 2 myuser other 117 Dec 26 18:34 ./<br> drwxrwxrwt 7 myuser sys 1361 Dec 26 18:33 ../<br> myhost: /tmp/foo $ <span style="font-weight: bold;">ftp mymud.com 6660</span><br> Connected to mymud.com.<br> 220- Dead Souls FTP server ready.<br> 220- FTPD news<br> 220- /news/ftpd<br> 220-<br> 220 Please login with your creator name or anonymous.<br> Name (mymud.com:myuser): <span style="font-weight: bold;">myguy</span><br> 331 Password required for myguy.<br> Password:<br> 230 User myguy logged in.<br> Remote system type is UNIX.<br> ftp> <span style="font-weight: bold;">passive</span><br> Passive mode on.<br> ftp> <span style="font-weight: bold;">bin</span><br> 200 Type set to I.<br> ftp> <span style="font-weight: bold;">dir</span><br> 227 Entering Passive Mode (1,2,3,4,30,32)<br> 150 Opening ASCII mode data connection for file list.<br> drwxrwxr-x 1 dead_sou dead_sou 0 Dec 26 18:33 .<br> drwxrwxr-x 1 dead_sou dead_sou 0 Dec 26 18:33 ..<br> -rw-rw-r-- 1 dead_sou dead_sou 28 Dec 26 18:33 .plan<br> -rw-rw-r-- 1 dead_sou dead_sou 21 Dec 26 18:33 .profile<br> drwxrwxr-x 1 dead_sou dead_sou 0 Dec 26 18:33 adm<br> drwxrwxr-x 1 dead_sou dead_sou 0 Dec 26 18:33 area<br> drwxrwxr-x 1 dead_sou dead_sou 0 Dec 26 18:33 bak<br> drwxrwxr-x 1 dead_sou dead_sou 0 Dec 26 18:33 cmds<br> -rw-rw-r-- 1 dead_sou dead_sou 361 Dec 26 18:33 customdefs.h<br> drwxrwxr-x 1 dead_sou dead_sou 0 Dec 26 18:33 log<br> drwxrwxr-x 1 dead_sou dead_sou 0 Dec 26 18:33 tmp<br> -rw-rw-r-- 1 dead_sou dead_sou 3087 Dec 26 18:33 workroom.bak<br> -rw-rw-r-- 1 dead_sou dead_sou 3087 Dec 26 18:33 workroom.c<br> 226 Transfer complete.<br> 811 bytes received in 0.0097 seconds (81.68 Kbytes/s)<br> ftp> <span style="font-weight: bold;">get workroom.c</span><br> 227 Entering Passive Mode (1,2,3,4,30,32)<br> 150 Opening binary mode data connection for /realms/myguy/workroom.c (3087 bytes).<br> 226 Transfer complete.<br> local: workroom.c remote: workroom.c<br> 3087 bytes received in 0.031 seconds (96.91 Kbytes/s)<br> ftp> <span style="font-weight: bold;">bye</span><br> 221 Goodbye.<br> myhost: /tmp/foo $ <span style="font-weight: bold;">ls -l</span><br> total 48<br> drwxr-xr-x 2 myuser other 184 Dec 26 18:35 ./<br> drwxrwxrwt 7 myuser sys 1361 Dec 26 18:33 ../<br> -rw-r--r-- 1 myuser other 3087 Dec 26 18:35 workroom.c</span><br> <br> The sharp-eyed among you will no doubt have noticed that<br> binary mode ("bin") is being used. This is because ASCII<br> mode transfers don't work too reliably, and fail more <br> often than not.<br> </big><big style="font-family: courier new,courier,monospace;"></big><big style="font-family: courier new,courier,monospace;"><br> <span style="font-weight: bold;">7)</span> hftp has NOT been tested for security or reliability.<br> If it doesn't work, you're free to let me know, but do<br> not expect me to fix it. If someone hacks into your mud using<br> rcp, http, ftp, or hftp, and ruins your life, this is not<br> my problem. These servers are provided to you as a convenience,<br> not as standards-compliant, production-quality internet<br> software. Proceed with extreme care and make regular backups<br> a top priority. If in doubt, do the following:<br> <br style="font-weight: bold;"> <span style="font-weight: bold;">mudconfig inet disable<br> </span><br> <span style="font-weight: bold;">8)</span> If you find hftp helpful and useful, please thank Duuk @ Haven<br> for being kind enough to let me filch it from his mud, <a href="http://havenmud.com/">Haven</a>.<br> If you *don't* like it, please withhold comment until you have<br> a patch to submit to fix a shortcoming. <br> <br> <span style="font-weight: bold;">9)</span> Known issues:<br> <br> * If you see this: </big><big style="font-family: courier new,courier,monospace;">"</big><big style="font-family: courier new,courier,monospace;">netin: Connection reset by peer" it means<br> you're trying to use ASCII mode. Remember to use binary mode.<br> <br> * Anonymous FTP doesn't work yet.<br> <br> <br> <a name="110"></a><span style="text-decoration: underline; font-weight: bold;">I boot the mud but nothing happens...the startup headers</span><br style="text-decoration: underline; font-weight: bold;"> <span style="text-decoration: underline; font-weight: bold;">come up but nothing preloads and I get no error messages. What's</span><br style="text-decoration: underline; font-weight: bold;"> <span style="text-decoration: underline; font-weight: bold;">going on?</span><br> <br> This can happen if your internet connection goes down, and<br> you're using name resolution. For example, if you are trying to<br> use 1.2.3.4 7777 as your address server, and your network<br> connection goes down so that you can't reach 1.2.3.4, then<br> if you try to reboot, the driver will hang at that point in<br> its startup configuration, waiting for 1.2.3.4 to become <br> available.<br> <br> Simply change that entry in mudos.cfg to something like<br> localhost or 127.0.0.1 and you should be able to boot again.<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"><a name="111"></a>How do I add a default alias?</span><br> <br> Add it to the Aliases array in /lib/nmsh.c<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"><a name="112"></a>How do reset() and clean_up() work?</span><br> <br> LPmuds come from a tradition of trying to be as conservative with<br> computer memory as possible. Back when a server with 128 megabytes<br> of RAM was worth killing for, people often had to make do with<br> scant memory resources. Objects needed to be be either swapped to<br> disk, or unloaded from memory entirely, if they weren't really needed.<br> <br> The clean_up() apply was meant to address this. The driver<br> periodically calls clean_up() on every object. Typically, the<br> clean_up() function coded into a given object contains instructions<br> such as "if you're not in a player's inventory and you're just<br> lying around, then destruct yourself", that sort of thing. In<br> Dead Souls, clean_up() is a function in LIB_CLEAN, which is <br> inherited by most objects.<br> <br> Some objects should never be unloaded from memory, like daemons,<br> and some special objects. Such things should have SetNoClean(1)<br> specified in their create() function, so that the clean_up()<br> apply doesn't try to destroy them.<br> <br> Tangible objects (shoes, swords) that are SetNoClean(1) will<br> prevent the object they are in (NPC or room) from doing a clean_up().<br> <br> reset() is another "driver apply", or function that is called by<br> the driver. Like clean_up(), reset() is called periodically, but<br> it is intended not to be a trigger for auto-destruction, so much<br> as a set of instructions to make an object presentable to <br> players again.<br> <br> For example, if Joe Player completes the Orcslayer quest by<br> killing a bunch of orcs, then when Jane Player wants to do the <br> quest, she's just going to find a bunch of dead orcs. However,<br> when reset() gets called on the room, then the inventory can<br> reload, so that Jane gets a crack at those orcs as well.<br> <br> Like clean_up(), reset() is not generally meant to be put in<br> run of the mill objects. By default, rooms inherit reset()<br> from LIB_ROOM, and it serves the purpose of reloading the<br> inventory the room is supposed to have.<br> <br> <br> <a name="113"></a><span style="font-weight: bold; text-decoration: underline;">When do reset() and clean_up() happen?</span><br> <br> The way MudOS works, the driver calls reset() and clean_up()<br> on objects based on the interval specified in the runtime<br> configuration file. <br> <br> That means that if mudos.cfg</big><big style="font-family: courier new,courier,monospace;"> has a "time to reset" of<br> 3600, your reset interval is 1 hour. Orcs will repopulate the<br> cave every hour at that rate (assuming they've been killed).<br> <br> Similarly, "time to clean up" specifies the driver's <br> interval between clean_up()'s. <br> <br> While this is a valid scheme, Dead Souls doesn't rely <br> on it. Dead Souls uses the TIME_TO_RESET variable in <br> /secure/include/config.h to determine the reset() and<br> clean_up() interval. If TIME_TO_RESET is 14400, then the<br> master daemon (MASTER_D) will run eventReset() every four<br> hours. eventReset() is a function that seeks out objects and<br> calls reset() and clean_up() on them.<br> <br> Note that this may cause set_reset() to behave in a way you don't<br> expect, and it means you'll get reset()'s in your mud even if<br> you compile the driver not to do so. <br> <br> Therefore, it's a good idea to set your "time to clean up"<br> and </big><big style="font-family: courier new,courier,monospace;">"time to reset" in mudos.cfg to something very large<br> (like 2000000000, aka 63 years) so that you don't have<br> two separate systems doing reset()'s and clean_up()'s.<br> <br> In Dead Souls 2.4.1 and below, MASTER_D calls reset() and<br> clean_up() on 25% of loaded objects at a time, to avoid<br> lag on busy muds. 2.5a1 and above can choose to have these<br> fuctions called on all loaded objects with the RESET_ALL<br> definition in /secure/include/config.h<br> <br> <br> <span style="text-decoration: underline; font-weight: bold;"><a name="114"></a>I want a 100% PK mud. Setting rooms PK one by one is not acceptable.</span><br> <br> Setting your DS mud to be 100% PK (pplayer killing) is not that convenient <br> by default, I agree. The reason for this is that from what I've seen, <br> unrestricted PK is a great way to ruin a mud, and it should not be <br> something you can enable accidentally.<br> <br> Having said that, this is the procedure you would follow to make<br> a Dead Souls mud 100% unrestricted PK.<br> <br> 1) Run the command: <span style="font-weight: bold;">mudconfig pk yes</span><br> 2) Edit /lib/std/room.c. Change <br> <br> <span style="font-weight: bold; color: rgb(0, 102, 0);">private static int PlayerKill = 0;</span><br> <br> to<br> <br> <span style="font-weight: bold; color: rgb(0, 102, 0);">private static int PlayerKill = 1;</span><br> <br> 3) Edit /lib/living.c. Change<br> <br> <span style="color: rgb(0, 102, 0); font-weight: bold;"> isPK = 0;</span><br> <br> to<br> <br> <span style="font-weight: bold; color: rgb(0, 102, 0);"> isPK = 1;</span><br> <br> 4) Reboot<br> <br> 5) Players created before this change may still need to use the <span style="font-weight: bold;">pk</span> command<br> to enable player killing for themselves.<br> <br> </big><big style="font-family: courier new,courier,monospace;"><br> <span style="font-weight: bold; text-decoration: underline;"><a name="115"></a>How do I make a new skill?</span><br> <br> What people usually mean by this is Diku style "skills", which are<br> more like special commands or spells than Dead Souls skills. In<br> Dead Souls, a "skill" is a property of a living thing that allows it<br> to be proficient to some specified level at a kind of activity. For<br> example, to be able to cast a defensive spell like buffer, you<br> may need a particular level of proficiency at the skill of "magic defense".<br> <br> That kind of skill isn't "created" in the standard sense. That kind<br> of skill is added to a player or NPC programmatically, usually when<br> their character is created, or they advance levels, or join a class.<br> <br> For more information on that kind of skill, please read Section IV<br> of Chapter 8 of the <a href="http://dead-souls.net/doc/guide/chapter08">Admin Guide</a>.<br> <br> In order to make the Diku-style "skill", all you really need to <br> do is write a new command. For example, take a look at <a href="http://dead-souls.net/code/ds2.8.4/lib/cmds/players/flee.c">/cmds/players/flee.c</a><br> <br> That's what a Dead Souls command looks like. Pretty straightforward,<br> but you'll need to become a little familiar with LPC to make your<br> own. Read the <a href="http://dead-souls.net/doc/manual/">Creator's Manual</a> to become familiar with LPC, then<br> play around with making a command of your own by copying flee.c to<br> bash.c or whatever, and tinkering with the code.<br> <br> There's no "quick" way to making a new skill of this kind. This is the<br> point where you decide whether to invest the time in learning enough<br> LPC to get your vision implemented in earnest.<br> <br> For the advanced coders, I would suggest creating a new <a href="http://dead-souls.net/verbs.html">verb</a>, rather <br> than a new command. Verbs are far more powerful and sophisticated than<br> commands and are suited for just this kind of purpose. However, they<br> require intermediate-to-advanced LPC coding skills, so if you are<br> new to LPC, please do not try verbs yet.<br> <br> <br> <a name="116"></a><span style="font-weight: bold; text-decoration: underline;">Why was Descartes so lame?</span><br> <br> People have really got the wrong idea here. There are two main complaints<br> against the original author of the Dead Souls lib:<br> <br> "Descartes was a mean jerk."<br> <br> and<br> <br> "Descartes was an incompetent coder and/or docwriter."<br> <br> My first response is that even if these things were true, <span style="font-weight: bold; font-style: italic;">it doesn't matter</span>.<br> <br> Whether Descartes was personally hurtful to you once is totally<br> irrelevant to your mud. He has left the mudding community and<br> will not hurt you again. Further, Dead Souls 2 was built from<br> public domain code, meaning he can never ever revoke your right<br> to use Dead Souls. By nursing your old resentments against Descartes,<br> you are only casting yourself in a bad light, by seeming petty<br> and self-involved.<br> <br> As to his supposed programming competence, this also is entirely irrelevant<br> to you. I can tell you that as the current maintainer of DS, I am<br> intimately familiar with his code and am in an excellent position<br> to sit here and bitch about it. The main reason I don't is that:<br> <br> 1) I am eternally grateful he wrote it in the first place.<br> 2) Given the TENS OF THOUSANDS of lines of good code he's written, a few <br> stumbles aren't worth getting smarmy about.<br> 3) Whether the code was written by him, one of his people, or dictated<br> to the lib directly from the mouth of Satan in the pits of hell, in the end, the <br> original author is not the problem. If the code doesn't do what you want, there <br> is really no point at all in grousing about it. Either fix it, ask for help, or<br> get a new lib. If you're an admin it's because you're a can-do type,<br> and willing to DIY where necessary. If not, blaming and complaining aren't<br> the answer. Meditation and introspection are. As in, you should be asking<br> yourself if running a mud is what you should be doing.<br> <br> Ok, now that I got the ranting out of my system, let's address the specific accusations:<br> <br> </big><big style="font-family: courier new,courier,monospace;">"Descartes was a mean jerk."<br> <br> Yeah, sort of. It really depended on how you approached him. Really,<br> as far as I could tell, he was a normal person with a somewhat low<br> threshold for having his buttons pushed. And people enjoyed pushing<br> his buttons. A lot. And this lowered his threshold for it. Rinse, repeat.<br> <br> As a result, if you were to publicly approach him in a way that<br> he identified as making you likely to be a button pusher, he'd tend to <br> handle you as such. You were less likely to get bile on you if you<br> approached him privately, but then, you might just get ignored as<br> Yet Another Loser wanting her hand held rather than just putting in<br> the work learning how to build her mud.<br> <br> On occasion he'd also just be generally irritable, combative, and argumentative.<br> In short, he was a normal person. I have personally been involved in<br> plenty of flaming back and forth with Descartes...quite thoroughly hostile<br> and ill-spirited. I doubt either one of us took it personally. This sort<br> of behavior was kind of the norm on intermud at the time. If you took it<br> personally, really, that's your problem, not his.<br> <br> And remember, we're talking about Descartes "in character". Whenever<br> I've communicated with George Reese out of his Descartes character, he's been<br> nothing but polite, courteous, and personable. Don't mistake the player<br> for the character.<br> <br> </big><big style="font-family: courier new,courier,monospace;">"Descartes was an incompetent coder and/or docwriter."<br> <br> This one bugs me. The main reason is that I don't think the people<br> who say these things are in a position to judge. I think that something like<br> 99% of his code is just dandy. It's useful and effective. And most of<br> it is quite efficient: remember that Dead Souls was developed on very<br> weak machines and was the basis for a very busy mud. It was vital that<br> things run efficiently and load economically. <br> <br> That his code contains some weaknesses is beyond dispute. If I were<br> to criticize something about his code, though, it wouldn't be that it is<br> shoddy or ill-conceived. Where I run into something that makes me spit,<br> usually it's obvious that he meant to finish a thing, and just didn't<br> get to it. If you run into something that tempts you to say "bah,<br> more DescartesLogic", step back and take a deep breath. The chances are<br> that you're really not grasping that bigger picture of the code you're<br> examining. <br> <br> On the other hand, yes, some objects really seem to have been handled<br> carelessly. I believe I lost a few months off my life from the aggravation<br> of trying to fix various issues in armor. This does not mean Descartes <br> was an incompetent coder. It means that, like normal people who work on<br> a hobby that does not feed, clothe, or house them, Descartes on occasion<br> slapped something together to just get it working and do what he needed quickly.<br> <br> Is that something anyone is not guilty of?<br> <br> As to weak docs, remember that his Basic and Intermediate LPC texts<br> are of biblical significance in the history of Dead Souls. They are, though<br> imperfect, a bedrock of documentation that is massive in size and<br> greatly detailed. This is in addition to the material in /doc/build. If<br> those docs seem inadequate to you, then you simply cannot be pleased.<br> <br> In the end, keep this in mind. George Reese is a professional developer,<br> who runs a software business. He is also a professional docwriter, having<br> published technical books that people have paid real money to buy. Unless<br> you have comparable credentials, and/or have published a mudlib yourself<br> which thousands of people have used, then you might want to reconsider<br> complaining about Descartes and his competence in these areas.<br> <br> <br> <a name="117"></a><span style="font-weight: bold; text-decoration: underline;">The mud is locked whats the command to add someone to the allow list?</span><br> <br> <span style="font-weight: bold;">groupmod -a test playername</span><br> <br> Note that this tags the player as a test char and<br> gives her access to normally restricted areas. For<br> details on what groups grant what access, see the <br> FAQ entry: <a href="http://dead-souls.net/ds-admin-faq.html#84">http://dead-souls.net/ds-admin-faq.html#84</a><br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"><a name="118"></a>Shouldn't you change all the documentation to reflect the move to FluffOS?</span><br style="font-weight: bold; text-decoration: underline;"> <br> No. See this faq entry: <a href="http://dead-souls.net/ds-faq.html#driver">http://dead-souls.net/ds-faq.html#driver</a><br> <br> Referring to the driver as MudOS is imprecise for the reader if<br> she is currently running FluffOS, but it is not altogether <br> incorrect and her potential confusion so minimal that I do not<br> see a need to rephrase each instance of "MudOS" into "the driver you are <br> using, which may be MudOS for older releases, and FluffOS for newer ones,<br> although FluffOS is a derivative of MudOS and functionally<br> indistiguishable at runtime except if you use its extended features,<br> in which case you should not be confused anyway".<br> <br> Where appropriate and convenient, I do from time to time change the<br> docs to reflect the migration, but it's not going to be a to-do list item.<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"><a name="119"></a>How do I change my timezone?</span><br> <br> Use the command: <span style="font-weight: bold;">admintool</span><br> <br> Select option: c<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"><a name="120"></a>So I herd u liek mudkip</span><br> <br> You herd right.<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"><a name="121"></a>Where is all the player information stored?</span><br> <br> If you mean "where is each player's information stored?",<br> the answer is "in their playerfile." In my case, it's<br> /secure/save/creators/c/cratylus.o , for a non-creator,<br> it might be something like /secure/save/players/t/testguy.o .<br> <br> <a href="http://dead-souls.net/ds-admin-faq.html#80">Note that .o files should never be edited.</a><br> <br> If you mean "where is the information for all players?",<br> then there isn't really any such thing. The best answer to that<br> is /secure/save/creators and /secure/save/players, because<br> that's where the save files live.<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"><a name="122"></a>The addrace command complains that the race already exists.</span><br> <br> A very common error is to copy an old race file to <br> a new name, and try to add it just like that. The<br> problem is that the new file contains inside it a<br> race name that is already known to the races daemon.<br> <br> Edit the new file and change the race name in it to<br> reflect the name of the new race, and try again.</big><big style="font-family: courier new,courier,monospace;"><br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"><a name="123"></a>I am confused about the player/creator distinction.</span><br> <br> The way it was explained to me is that "imms" on <br> Diku-derivative muds are basically "superplayers"...<br> that is, powerful and high-level, but not set apart<br> from players as fundamentally as is the case on DS.<br> <br> For example, someone once was shocked to discover<br> that I'd never bothered to test lead/follow code<br> on creators. My response was something along the lines<br> of "I guess I just never figured they'd have much<br> use for it," which was even more horrifying.<br> <br> The thing to realize is that creators are not players<br> <span style="font-weight: bold;">at all</span>. They cannot be, because their powers are<br> so vast as to subvert any concept of fair play.<br> A creator can kill any monster instantly with the<br> zap command. She can read the code for a quest and<br> complete it with no effort by just cloning the<br> desired object, or even just evaluating the proper<br> function call to achieve the desired effect. She<br> doesn't have to "follow" anyone, she can just instantly<br> teleport herself to the intended location.<br> <br> In fact, on the original Dead Souls 1.1 codebase, <br> creators technically didn't even have bodies. They<br> were just kind of amorphous entities floating around<br> the game...but boy, people <span style="font-weight: bold;">hated</span> that. They wanted <br> to wield and wear things, and do other stuff that<br> players can do. And so today you can see creators<br> strolling about as if they share the same mortal<br> limitations players do, but do not be fooled.<br> <br> Creators are not players. They are godlike beings<br> walking among players, able to manipulate the essence<br> of their world. Therefore, please expect that lots of<br> things simply don't apply to them.<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"><a name="124"></a>How do I prevent people from using channels?</span><br> <br> By default, only creators have intermud channel access.<br> New players can't use intermud, unless a creator adds<br> an intermud channel to them (for example, <span style="font-weight: bold;">call joe->AddChannel("dchat")</span> ).<br> <br> If you want to have more strict control on who can use<br> intermud channels, use the mudconfig command to <br> restrict intermud:<br> <br> <span style="font-weight: bold;">mudconfig intermud restrict</span><br> <br> Once you do that, only people in the INTERMUD group in<br> /secure/cfg/groups.cfg can use intermud channels, <br> regardless of what channel has been added to them.<br> To add someone to the INTERMUD group:<br> <br> <span style="font-weight: bold;">groupmod -a intermud joe</span><br> <br> to remove them:<br> <br> <span style="font-weight: bold;">groupmod -r intermud joe</span><br> <br> Warning: use great care with the groupmod command.<br> <br> <br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;"><a name="125"></a>How do i disable the rss bot, or other channels?</span><br> <br> By default, creators have some standard channels<br> added to them upon their promotion to creator status.<br> You can see which channels they are by reading <br> /secure/cmds/admins/encre.c and looking for a line similar to this:<br> <br> </big><big><span style="font-family: monospace;">cre_ob->AddChannel(({"cre", "newbie", "gossip", "ds", "ds_test", "lpuni", "death", "connections","intercre","dchat","inews" }));</span></big><big style="font-family: courier new,courier,monospace;"><br> <br> Modify that line to remove channels that you<br> feel new creators do not need, then type:<br> <br> <span style="font-weight: bold;">update </span></big><big style="font-family: courier new,courier,monospace; font-weight: bold;">/secure/cmds/admins/encre.c</big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold;"></span><br> <br> And people you promote to creator after that won't have<br> the channels you removed from that line.<br> <br> To simply turn off a channel <span style="font-style: italic; font-weight: bold;">you</span> dislike <span style="font-style: italic; font-weight: bold;">yourself</span>,<br> just type the channel name alone at the command prompt, like:<br> <br> <span style="font-weight: bold;">inews</span><br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"><a name="126"></a>I made a verb but it doesn't work</span><br> <br> Please refer to the <a href="http://dead-souls.net/verbs.html">verb tutorial</a>, and<br> really read the whole thing through. Note that<br> the most common error is failing to add the<br> appropriate <a href="http://dead-souls.net/verbs.html#4">direct_/indirect_</a> applies to the<br> target object.<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"><a name="127"></a>Does Dead Souls support databases like MYSQL?</span><br> <br> Short answer: Not really.<br> <br> More correct answer: Sort of. FluffOS/MudOS, the driver<br> that DS uses as its "engine", has some support for<br> databases built in. However, enabling it requires<br> recompiling the driver with the proper config options,<br> and if you manage to do this correctly by some<br> great feat of luck, you'll have a driver that supports<br> MYSQL features from back in 2000 or before.<br> <br> That is to say, relying on the driver's support for<br> DB is chancy, and success doesn't mean you actually<br> succeed in doing anything useful.<br> <br> These days, when people want to use a FluffOS/MudOS<br> lib like Dead Souls in conjunction with a database,<br> the most common and successful approach is to use<br> an intermediary script, like perl or python. You<br> code a lib object that uses MudOS sockets or <br> external_start() to talk to your script/program, and the<br> script/program then does the heavy lifting of correctly<br> communicating with the database.<br> <br> There's no DS lib object currently in the release<br> that handles this sort of stuff. If you want DB support,<br> you'll pretty much have to DIY. The good news is that<br> it's certainly doable...folks have done it in the past.<br> The bad news is you'll really have to know what you're<br> doing for it to work.<br> <br> <br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;"><a name="128"></a>How do I make my new currency work?</span><br> <br> Presumably you've already used admintool options 2<br> and j to add a new currency and are now wondering <br> what to do to put it in the game.<br> <br> Currency isn't like a normal "object". When you<br> pick up a pile of coins, for example, that pile<br> was only a kind of placeholder object. Once you get<br> it, it vanishes, and the weight and value it had<br> are added to you, without there being a specific <br> "money object" you're carrying. When you drop <br> money, a pile is created to hold that value, but<br> again, when someone picks it up, it goes away.<br> <br> So, now that there are Quatloos in your game, how<br> do you get your hands on some?<br> <br> As a creator, it couldn't be simpler. Just type:<br> <br> <span style="font-weight: bold;">call me->AddCurrency("quatloos",500)</span><br> <br> But I'm guessing what you're really wanting is<br> to make Quatloos the standard legal tender for<br> your mud. In that case, you'll want your vendors,<br> bank tellers, and barkeeps to use that as their<br> default currency. <br> <br> Tanke a look at how this is specified in the following<br> commercial NPC's, and modify your own accordingly:<br> <br> /domains/town/npc/otik.c<br> /domains/town/npc/lars.c<br> /domains/town/npc/zoe.c<br> <br> <br style="font-weight: bold; text-decoration: underline;"> <span style="font-weight: bold; text-decoration: underline;"><a name="129"></a>My friends can't connect to my mud, but I can!</span><br> <br> The most common scenario here is that you are running<br> your mud at home, and you are able to telnet to it<br> with no problem because you are local to the mud.<br> <br> However, these days there are usually a couple of<br> layers of security between your PC and the internet.<br> Chances are that your internet connection is through<br> a "router" or "firewall" device. Find the physical<br> device that your computer's network port is connected<br> to. Examine it to determine its manufacturer name and<br> the device's model number.<br> <br> Now go on Google and do a search for it, for example:<br> <br> +linksys +pos2000 +user +manual <br> <br> Keep varying the search terms until you find the<br> documentation for your device. Then download it and<br> read it. It should describe how to log into the<br> device and configure its firewalling to allow incoming<br> connections to be forwarded to the computer that is<br> running the mud.<br> <br> You'll probably need to know the IP address of the<br> mud computer. If it is running windows, open a command<br> window and type: <br> <br> <span style="font-weight: bold;">ipconfig /all</span><br> <br> (protip: 127.0.0.1 is not the correct IP to forward to)<br> <br> If you're running UNIX/Linux, try: <span style="font-weight: bold;">ifconfig -a<br> <br> </span>Using the documentation for your device, and the networking<br> information from the computer, configure your device to<br> forward incoming connections to whatever port your<br> mud is running (typically port 6666).<br> <br> If that *still* doesn't work, you may be running a<br> software firewall on the mud computer that rejects incoming<br> connections. Temprarily disable the computer's firewall and<br> see if your friends are then able to connect. If so,<br> then you know you need to figure out how to configure your<br> software firewall to allow connections on the mud port.<br> <br> If you can't figure it out, use Google to download<br> documentation on your firewall software.<br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"><a name="130"></a>My efun override is not working</span><br> <br> Put it in /secure/sefun/sefun.c<br> <br> <br> </big><big style="font-family: courier new,courier,monospace;"><a name="131"></a><span style="font-weight: bold; text-decoration: underline;">How do I remove the QCS?</span><br> <br> <span style="color: rgb(204, 0, 0);">Amadeus <cre> yo cratylus</span><br style="color: rgb(204, 0, 0);"> <span style="color: rgb(204, 0, 0);">Amadeus <cre> how do i remove the QCS on my copy of DS?</span><br> <span style="color: rgb(204, 0, 0);">Amadeus <cre> I want to 100% remove it without hurting anything else.</span><br> Cratylus <cre> why not simply avoid using it?<br> <span style="color: rgb(204, 0, 0);">Amadeus <cre> because its too tempting for my creators and I want them to learn to code.</span><br style="color: rgb(204, 0, 0);"> <span style="color: rgb(204, 0, 0);">Amadeus <cre> I want to know where all it's located at etc., so I can remove it safely without affecting anything else.</span><br> Cratylus <cre> overwrite the files in /secure/modules/ with blank files<br> Cratylus <cre> that'l probably do it<br> Cratylus <cre> dont just delete them<br> Cratylus <cre> and, of course, back them up first, just in case<br> <span style="color: rgb(204, 0, 0);">Amadeus <cre> what if i removed the create command from /secure/cmds/?</span><br> Cratylus <cre> that wasn't the advice i gave you<br> <span style="color: rgb(204, 0, 0);">Amadeus <cre> Mind telling me what the point of the QCS would even be?</span><br> Cratylus <cre> please clarify the question<br> <span style="color: rgb(204, 0, 0);">Amadeus <cre> What is the point of a quick creation system?</span><br> Cratylus <cre> <a href="http://dead-souls.net/articles/olc.html">http://dead-souls.net/articles/olc.html</a><br> <span style="color: rgb(204, 0, 0);">Amadeus <cre> Nah... It's buggy... It doesn't work.</span><br> Cratylus <cre> then why bother removing it?<br> <span style="color: rgb(204, 0, 0);">Amadeus <cre> It backtracks you more often than helps you move forward.</span><br> Cratylus <cre> then dont use it<br> <cre> Cratylus shrugs.<br> <span style="color: rgb(204, 0, 0);">Amadeus <cre> I don't even want it on my MUD.</span><br> Cratylus <cre> well then, follow my instructions, and you'll be all set<br> <br> <br> </big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="132"></a>I heard you can edit stuff from the interwebs?</span><br> <br> Yes! Starting in <a href="http://dead-souls.net/code/alpha/">2.7a5</a> you can now use CreWeb to edit your files.<br> For folks who hate using ed but don't have shell access, CreWeb<br> is just the ticket.<br> <br> It's basically a bunch of cgi scripts that run from the mud's<br> built-in webserver. You log in with your mud name and mud<br> password, and you can browse, upload, and edit files.<br> <br> This is what your homedir looks like: <a href="http://lpmuds.net/homedir.jpg">http://lpmuds.net/homedir.jpg</a><br> This is what editing looks like: <a href="http://lpmuds.net/editing.jpg">http://lpmuds.net/editing.jpg</a><br> <br> Note that this is purely experimental and may pose security<br> risks. CreWeb was coded with security as a priority but I<br> cannot guarantee it is 100% safe.<br> <br> If you want to give it a whirl:<br> <br> <span style="font-weight: bold;">mudconfig http port 8001</span><br style="font-weight: bold;"> <span style="font-weight: bold;">mudconfig http disable</span><br style="font-weight: bold;"> <span style="font-weight: bold;">mudconfig cgi enable</span><br style="font-weight: bold;"> <span style="font-weight: bold;">mudconfig dirlist enable</span><br style="font-weight: bold;"> <span style="font-weight: bold;">mudconfig creweb enable</span><br style="font-weight: bold;"> <span style="font-weight: bold;">mudconfig http enable</span><br> <br> (protip: It doesn't have to be port 8001)<br> <br> And then use your web browser to go to your<br> mud's ip with the port you specified...for example:<br> <br> <a href="http://alcatraz.wolfpaw.net:8001/cgi/login.html">http://alcatraz.wolfpaw.net:8001/cgi/login.html</a><br> <br> Note that the alcatraz url is not your mud, so don't<br> bother trying to log in. That's just an example of<br> what the URL and the page looks like.<br> <br> While creweb in theory is browser-agnostic, the sad<br> truth is that Internet Explorer insists on doing weird<br> new things I can't keep up with, and it's easier to support<br> Firefox which everyone has than Explorer which is<br> Windows-specific. So if you run into problems, please<br> try using Firefox instead. <br> <br> <br> <span style="font-weight: bold; text-decoration: underline;"><a name="133"></a>I want to let people build but I don't want them to be full creators</span><br> <br> Starting in 2.7a7, players can use the QCS to create<br> rooms, npc's, weapons, armor, etc, if they are members<br> of the BUILDER group. Simply add your new builder to<br> the BUILDER group with this command (if her name is "newbuilder"):<br> <br> <span style="font-weight: bold;">groupmod -a builder newbuilder</span><br> <br> And then have her quit and log back in. <br> Her stuff will be in /estates/n/newbuilder<br> <br> Have her issue the command "<span style="font-weight: bold;">home</span>", then get the<br> staff and guidebook from her chest, and start reading.<br> <br> Note that builders do not have access to commands like<br> ed, cd, ls, more, etc. They are meant to be isolated <br> from LPC. If you want builders who can view and edit<br> LPC code, they'll need to be <a href="#3">creators</a>.<br> <br> However, builders do have a workroom they can home to,<br> and can use standard QCS commands like create, modify, <br> add, etc.<br> <br> Note that the game will try to isolate builder stuff from<br> live game content. Builder objects will not have value<br> at shops, the armor won't protect from "real" in-game <br> attacks, and weapons will be effective only against npc's<br> from the builder's estate.<br> <br> <br> </big><big style="font-family: courier new,courier,monospace;"><a name="134"></a><span style="text-decoration: underline; font-weight: bold;">How do I enable IMC2? What is it?</span><br> </big><big style="font-family: courier new,courier,monospace;"><br> IMC2 is an intermud protocol, like <a href="http://lpmuds.net/intermud.html">Intermud-3</a>, but it is<br> slightly different in how it works, its definition, and<br> implementation. You can think of it as another brand of<br> intermud...IMC2 and I3 being like Pepsi and Coca-Cola.<br> <br> The folks at Mudbytes run an IMC2 server network, and your<br> mud is preconfigured for it. As of 2.7, Dead<br> Souls does not automatically connect to IMC2. To connect<br> to it, you would issue the following command:<br> <br> </big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold;">mudconfig imc2 enable</span><br> <br> To start listening to specific channels, you add them<br> to yourself in the same manner as Intermud-3 channels:<br> <br> <span style="font-weight: bold;">call me->AddChannel("ichat")<br> <br> </span></big><big style="font-family: courier new,courier,monospace;">I am not in charge of IMC2, do not complain to me about<br> it. For more information about channels, rules, specs,<br> etc, visit their <a href="http://www.mudbytes.net/intermud">IMC2 support page</a>. <br> <br> <span style="font-weight: bold;">Note</span>: In Dead Souls 2.8 there is a bug which requires<br> you to edit /secure/sefun/mud_info.c. For details, see<br> The forum post: <a href="http://lpmuds.net/forum/index.php?topic=697.msg3470#msg3470">http://lpmuds.net/forum/index.php?topic=697.msg3470#msg3470</a><br> <br> </big><big style="font-family: courier new,courier,monospace;"><br> <a name="135"></a><span style="font-weight: bold; text-decoration: underline;">Combat is too slow!</span><br> <br> Combat in Dead Souls depends on individual stats.<br> If you're a stone golem, your speed will be low, meaning<br> your heartbeats are slow, and you only get an attack in<br> every 4 seconds or so.<br> <br> On the other hand, someone with a very high speed stat<br> could get an attack every two, or even every second.<br> <br> The idea is that in having varying combat speeds,<br> it makes things a bit more realistic and it means you<br> need to use some strategy.<br> <br> However, some people are used to codebases that do<br> not bother with this sort of thing. They want to see fighting<br> scream by their screen, never mind stats. For such people,<br> a new configuration option, FAST_COMBAT, has been added to<br> config.h. To enable "fast combat, regardless of speed stat",<br> issue the command:<br> <br> <span style="font-weight: bold;">mudconfig fastcombat enable<br> <br> <br> <a name="136"></a><span style="text-decoration: underline;">I want players to select their class when they create their characters</span><br> <br> </span></big><big style="font-family: courier new,courier,monospace;">Starting in 2.7a26 this can be enabled with the command:<br> <br> <span style="font-weight: bold;">mudconfig selectclass yes</span><br> </big><big style="font-family: courier new,courier,monospace;"><br> Note that the existing classes are just examples, and are therefore<br> unlikely to have all the neat things you will eventually have<br> in your mud.<br> <br> <br> <a name="137"></a><span style="font-weight: bold; text-decoration: underline;">I am strongly opposed to the use of intermud</span><br style="font-weight: bold; text-decoration: underline;"> <br> There are a few common reasons for this, often based on old<br> or incorrect assumptions. Obviously you're going to run your<br> own mud however it pleases you, but if your decision to disable<br> intermud is based on the following beliefs, you may want to<br> re-evaluate those reasons:<br> <br> <span style="text-decoration: underline;"><a name="mean"></a>"People are mean on intermud"</span><br> <br> Some people on some channels are mean, yes. However, Dead Souls<br> does not enable those channels for your creators by default.<br> The default channels are newbie-friendly and have <a href="http://lpmuds.net/intermud.html#rules">rules</a> which<br> are enforced. <br> <br> <a name="liar"></a><span style="text-decoration: underline;">"Liar. I have seen the <a href="http://dead-souls.net/duuk.txt">log</a>s. Newbies are eaten alive."</span><br> <br> Not anymore. Not on my watch. Old logs are old. If a newbie<br> is needlessly aggressed now, the <a href="http://dead-souls.net/duuk2.txt">aggressor is confronted</a>.<br> If the aggressor does not behave, the aggressor faces...<br> consequences.<br> <br> </big><big style="font-family: courier new,courier,monospace;"><a name="double_liar"></a><span style="text-decoration: underline;">"Double liar. You were just abusing Hellmonger <span style="font-weight: bold;">YESTERDAY</span>!"</span><br> <br> This is one of those things that is hard for "newcomers" to<br> understand, but on the intergossip channel, what looks like<br> bitter, unrelenting abuse is often meant (and taken) as<br> warm camaraderie. Oldtimers like Hellmonger, Duuk, and me<br> often have ways of communicating that seem like perhaps one<br> or more of us may wind up homicided for real. It's just goofing<br> around, and it's one of the reasons I strongly discourage<br> newcomers from connecting to that channel. As Kalinash very<br> aptly <a href="http://mudbytes.net/index.php?a=topic&t=752&min=0&num=15">put it</a>: <br> <br> "As for the content of the I3 channels, dead_souls and dchat are intended to be helpful and PG-13. Once you wander into imud_gossip, it's a frat house full of sailors on shore leave. Fortunately, a most of the bile spewing, name calling and other general rudeness, is still done in good humor."<br> </big><big style="font-family: courier new,courier,monospace;"><br> <span style="text-decoration: underline;"><a name="distracting"></a>"Intermud is distracting"</span><br> <br> You don't have to prevent everyone on the mud from using<br> intermud just because you find channels distracting. If you<br> don't want to hear from a channel, for example the "ds_test"<br> channel, you can issue the command:<br> <br> <span style="font-weight: bold;">ds_test</span><br> <br> By itself, the channel name disables or enables the channel<br> for you personally, without affecting how others on the<br> mud use it.<br> <br> <span style="text-decoration: underline;"><a name="theft"></a>"People will try to steal my builders and coders"</span><br> <br> This is unlikely. I don't think I've seen very much of this<br> in the years I've run the network. It certainly *can* happen <br> that your staff leaves your mud for another one. I would<br> suggest that this would happen whether you enable intermud<br> or not. <br> <br> You see, when a coder has a question you can't answer, or<br> if you're not there, she's going to do a web search, and<br> find the <a href="http://lpmuds.net/forum/">lpmuds.net forum</a>, or log into the <a href="http://dead-souls.net/javaclient/demo.html">Dead Souls demo<br> mud</a>. She's going to run into friendly, helpful people who<br> share their ideas and suggestions, and she's going to<br> want more of that. If you block intermud on your mud,<br> she's just going to go somewhere else to find support,<br> and she might just stay there. <span style="font-style: italic;">And</span> tell your other staff<br> about the new place that isn't so restrictive.<br> <br> By blocking intermud, you actually make it <span style="font-weight: bold; font-style: italic;">more</span> likely you'll<br> lose staff, not less.<br> <br> </big><big style="font-family: courier new,courier,monospace;"><a name="hog"></a><span style="text-decoration: underline;">"Intermud is a resource hog"</span><br> <br> This is not correct. Your intermud connection generates<br> about as much traffic/lag as a single moderately active<br> player. I have tested Dead Souls with very large numbers<br> of connections, and very large numbers of players, and<br> I can assure you, quite confidently, the default intermud<br> connection for your mud does not "lag" your mud. This<br> might have been true on some other driver, with some other<br> lib, in some other era...but not today.<br> <br> <a name="crat_sucks"></a><span style="text-decoration: underline;">"I just don't like you, Cratylus"</span><br> <br> You don't have to be a fan of mine to benefit from<br> intermud. Some of the most established oldbies on intermud<br> love nothing more than to give me a hard time on the intergossip<br> (read not-very-friendly) channel. If nothing else, intermud<br> would allow you to join the intergossip channel and tell<br> me exactly how much I suck in real-time.<br> <br> <a name="malware"></a><span style="text-decoration: underline;">"I am afraid that intermud is actually some sort of Trojan or spyware"</span><br> <br> Short answer: intermud doesn't spy on you.<br> <br> Long answer:<br> Dead Souls is an LP lib, meaning that it has no secrets. Its<br> code is not pre-compiled. What it does, and how it does so is<br> completely open for anyone to download and inspect. If you<br> know anything at all about me you know there are plenty of<br> people who would <span style="font-weight: bold; font-style: italic;">love</span> to find spyware/malware/whatever in<br> Dead Souls, and make a big deal of it. If intermud worked<br> as a spy tool for Dead Souls, it would be the worst thing that<br> ever happened to the project. <br> <br> You can rest assured that intermud is not something <br> used for collecting secrets about your mud.<br> <br> Having said that, intermud does allow people to see some<br> things you might not like:<br> <br> * The list of logged-on players.<br> * Finger information about players (except for their IP)<br> * Basic information about which driver and lib version you <br> run, as well as uptime and such miscellanea.<br> <br> If that information is something you don't want others to<br> see, then disabling intermud would do the trick. However,<br> it's really not very secret information...since logging<br> in as "guest" would let anyone see the exact same things!<br> <br> One thing to keep in mind is that even though I do not<br> monitor what people say to each other with "intermud tells"<br> (different from channels. intermud tells are just between the <br> two people), intermud tells go across the router in plain text, so<br> you cannot be guaranteed that your <a href="#90">intermud tell</a> will never <br> be read by another person. However, regular tells on<br> your mud are not intermud tells, and therefore regular<br> tells on your mud never reach the intermud.<br> <br> If you want to see the data your mud sends to the intermud<br> router, visit the network room:<br> <br> <span style="font-weight: bold;">goto /secure/room/network</span><br> <br> You'll see the raw intermud packets going in and out.<br> </big><big style="font-family: courier new,courier,monospace;"><br> <a name="minors"></a><span style="text-decoration: underline;">"My game will have young children. I don't want them exposed to strangers."</span><br> <br> You should definitely block intermud then, or at<br> least <a href="#35">restrict it</a> to adult staff.<br> <br> <a name="criminal"></a><span style="text-decoration: underline;">"I am in a country where some opinions are criminal"</span><br> <br> </big><big style="font-family: courier new,courier,monospace;">You should definitely block intermud then, or at<br> least <a href="ds-admin-faq.html#35">restrict it</a> to trusted staff.<br> <br> </big><big style="font-family: courier new,courier,monospace;"><a name="anarchist"></a><span style="text-decoration: underline;">"I refuse to obey your </span><a style="text-decoration: underline;" href="http://lpmuds.net/intermud.html#rules">channel rules</a><span style="text-decoration: underline;">"</span><br> <br> </big><big style="font-family: courier new,courier,monospace;">You should definitely block intermud then, or at<br> least <a href="ds-admin-faq.html#35">restrict it</a> to responsible staff.</big><br> <big style="font-family: courier new,courier,monospace;"><br> <br> <span style="font-weight: bold; text-decoration: underline;"><a name="138"></a>I hate one of the sample domains and I want it GONE</span><br> <br> If you feel strongly about it, then by all means get rid<br> of the domain that offends your sensibilities. Before<br> you do, however, ask yourself if what you dislike is<br> the domain itself and everything it stands for, or<br> if the problem is that you just don't want it to be<br> something your players see.<br> <br> The reason you should ask yourself this question is<br> that even if you really don't care for one of (or all<br> of) the sample domains, they really do serve the<br> incredibly useful purpose of providing many, many<br> good examples of how to do certain things in Dead Souls.<br> Without working examples, you'll be reinventing the<br> wheel anytime you want to do something you're <br> unfamiliar with that isn't explicitly detailed in<br> exisiting documentation.<br> <br> If you wipe the the Town domain, for example, and<br> then want to set up a quest for advancement, you're <br> going to have to figure it out by reading and <br> understanding the mechanics of the quest lib object <br> and level system...rather than just taking a quick <br> look at Leo and Dirk for how they implement those <br> mechanics. If you're ok with that, then fine, but don't<br> be surprised if your request for help on the intermud<br> goes something like:<br> <br> Newcomer@MyMud <span style="color: rgb(0, 204, 204); font-weight: bold;"><dchat></span> how do I get an npc to raise my level?<br> Cratylus@Dead Souls <span style="color: rgb(0, 204, 204); font-weight: bold;"><dchat></span> take a look at dirk <br> </big><big style="font-family: courier new,courier,monospace;">Newcomer@MyMud <span style="color: rgb(0, 204, 204); font-weight: bold;"><dchat></span> nah, I deleted that domain, it sucks<br> </big><big style="font-family: courier new,courier,monospace;">Cratylus@Dead Souls <span style="color: rgb(0, 204, 204); font-weight: bold;"><dchat></span> download dead souls again and take a look at dirk<br> <br> (This chat was simulated. No newbies were harmed in <br> the creation of that pretend log)<br> </big><big style="font-family: courier new,courier,monospace;"><br> It's by far simpler and more convenient to <br> <a href="http://dead-souls.net/ds-admin-faq.html#108">change the default domain to something else</a>, rather<br> than deleting stuff.<br> <br> But hey, the beauty part is, it's <span style="font-weight: bold;">your</span> mud. I'm not<br> the boss of you, so if obliterating that horrible<br> awful set of bits is what you must do, then follow<br> your vision, man.<br> <br> </big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="139"></a>How do I make help files?</span><br> <br> Create a text file in the manner you normally do, then when<br> you're done, put it somewhere in /doc/help that makes sense.<br> for example, a help file about your new combat system might<br> be called /doc/help/players/karate<br> <br> Once you've made the helpfile and put it where it goes, <br> update the help daemon and you should be all set:<br> <br> <span style="font-weight: bold;">update /daemon/help<br> <br> <br> </span></big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="140"></a>How many players will DS handle simultaneously?<br> </span><br style="text-decoration: underline;"> <span style="text-decoration: underline;">General answer</span>:<br> As of Dead Souls 2.8.4, Dead Souls on a unix host<br> running a modern OS on modern hardware can handle<br> a couple hundred players with no software lag.<br> <br> <span style="text-decoration: underline;">Detailed answer</span>:<br> I have run tests on Linux and Solaris, firing playerbots<br> into a test mud. These bots walk around, pick fights,<br> get stuff, drop stuff, examine things, etc. They are<br> coded to be as unidle as an extremely busy player...<br> typically with less than 2 seconds between commands,<br> all the time.<br> <br> What I found is that with the default settings, a<br> DS mud on a unix host with a 2.5GHz proc doesn't<br> hit noticeable lag until you're roughly over 200<br> <span style="font-style: italic;">very active</span> players. At around 250 V.A.P. you notice<br> a little lag, which doesn't change much until about<br> 350 V.A.P., at which point you'll get occasional,<br> definitely noticeable lag.<br> <br> It doesn't get into "bad lag" territory until around<br> 400 V.A.P. Above 500 you start getting into annoying<br> lag territory, and above 600 or 700 it's "not fun".<br> <br> Note, however, that <span style="font-style: italic;">real</span> players are rarely as intensely<br> busy as these bots. If you factor in the fact that<br> about half your players are idle about half the time,<br> the figure for "maximum players with no lag" goes<br> up pretty quickly. You can also optimize your mud<br> for high connection loads by disabling some of the<br> resource-intensive parsing defaults.<br> <br> So, in theory, a DS mud on unix running on cutting-edge <br> hardware and with normal players that are idle about <br> half the time and with performance optimized could probably<br> handle some 400 or 500 players simultaneously with<br> little to no noticeable software lag. I haven't<br> tested this, though, since I can't afford cutting<br> edge hardware.<br> <br> See the FAQ entry below for DS on Windows.<br> <br> </big><big style="font-family: courier new,courier,monospace;"><br> </big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="141"></a>I heard that Dead Souls for Windows has limitations</span><br> <br> Yep. They're not on purpose though, and it isn't the<br> fault of Bill Gates or whatever. Basically, when<br> the driver DS uses was in its early development, <br> Windows was not a great target for mud development.<br> It wouldn't have been *crazy* to make a mud that<br> ran on, say, Windows NT 3.51, but it would be such a<br> small audience that that the focus was on a driver<br> that ran well on unix. <br> <br> MudOS therefore has had for a very long time a<br> major bias toward code that runs well on unix, and<br> this has been so for well over a decade. FluffOS,<br> derived from MudOS, shares this legacy.<br> <br> Nowadays, Windows systems are quite robust and<br> perfectly capable of handling even enterprise-level<br> server apps. Today is seems *weird* that it's so hard <br> to find a mud server that runs natively on Windows.<br> To me it seemed natural to try to spread the goodness<br> that is Dead Souls by making it easy to run on Windows.<br> You will now find in the standard Dead Souls download<br> an executable for Windows...and it's actually *easier*<br> to install and run DS on Windows now than on unix.<br> Go figure.<br> <br> However, the executable is compiled from unix source<br> that heavily favors the unix way of doing business,<br> and this is sadly not always compatible with Windows.<br> As a result, Dead Souls on Windows has the following<br> limitations:<br> <br> * DS on Windows will not accept more than 64 simultaneous <br> network connections, meaning you are limited in the number <br> of players you can have logged on at once.<br> <br> * DS file operations are dramatically slower on Windows.<br> This causes performance in general to be weaker in <br> comparison to the unix version, and it is the reason<br> that some file-intensive operations, such as file<br> indexing, are disabled in the Windows version.<br> <br> * DS CPU time is measured in a way that Windows doesn't<br> understand, meaning that operations that under unix DS would<br> get cancelled for being too CPU-greedy are allowed to<br> run indefinitely in Windows DS. This means it is trivial<br> to "lock up" a DS Windows mud by accident, forcing you<br> to kill the process and restart.<br> <br> There are probably a few other limitations, but these<br> three illustrate why Dead Souls on Windows is meant to be <br> used for testing, development, and evaluating, not for a <br> production mud. Your production DS mud (aka mud that is open<br> for players and has players logged on) should run on a <br> normal unix/Linux host.<br> <br> Note that if you use Cygwin to compile your own Windows<br> executable, you *might* get around some of this stuff...<br> but I don't support Cygwin so I can't vouch for it.<br> </big><big style="font-family: courier new,courier,monospace;"><br> </big><big style="font-family: courier new,courier,monospace;"><br> </big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="142"></a>What are the CPU/RAM/diskspace requirements for Dead Souls?</span><br> <br> I usually get this question because someone wants<br> to get server hosting somewhere and they want to<br> know which "service package" to subscribe to. <br> Unfortunately, the answer depends on all sorts of<br> things I can't know, such as the speed of the<br> machine, how busy your mud will be, etc. Rather<br> than try to answer the question, what I can do<br> is simply tell you what my usage is.<br> <br> <span style="text-decoration: underline;">Dead Souls on Linux 3GHz, uptime 2w, currently on 8 players:</span><br> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND<br> XXX XXX 9 0 11976 11m 1216 S 0.0 0.6 152:48.51 fluffos<br> <br> So a pretty idle DS mud takes little CPU and about<br> 11 megs ram, when it's mostly just a few people sitting<br> around testing a few objects and chatting on intermud.<br> <br> Now for a heavy test/dev mud...<br> <br style="text-decoration: underline;"> <span style="text-decoration: underline;">Dead Souls on Solaris 2.5GHz, uptime 2d, currently on 130 players:</span><br> PID USERNAME LWP PRI NICE SIZE RES STATE TIME CPU COMMAND<br> XXX XXX 1 59 0 30M 28M sleep 2:09 3.86% driver<br> <br> In this particular case I think the 30M is probably<br> misleading. These 130 players do wander around and<br> load rooms and stuff, and I've seen the usage go<br> up past 50 megs after a while. Is 50 megs for 130<br> players a lot? I don't know. How much ram is your<br> browser using right now? <br> <br> The CPU percentage is also misleading, because "top"<br> on multiproc machines tends to divide that percent by<br> the number of cores, so in this case the CPU utilization<br> is actually more like 7.7%. Is that a lot for 130 very<br> active players? <span style="font-style: italic;">I</span> don't think so, but that's up to you<br> to decide.<br> <br> In any case, those are the two data points I can provide to<br> you as a guide of how to shop for your hosting. If you<br> find data that contradicts this, or is more useful, feel<br> free to post it on <a href="http://lpmuds.net/forum/">the forum</a>.<br> <br> As for diskspace, the download package itself is about 6M,<br> and uncompressed it is:<br> <br> $ du -ksh ds2.8.4<br> 28M ds2.8.4<br> <br> However, remember that an LP mud is all about files in<br> LPC, which is plaintext and they'll take up a bunch of<br> room as you go along. And also remember you'll be making<br> backups, and possibly logging things, etc. <br> <br> My test mud takes up about 110M, and if you're going<br> to be hiring coders and such, I'd strongly advise going<br> above 200M. <br> <br> For just goofing around and testing, you could probably <br> keep it under 100M, but you need to keep an eye on<br> your usage.<br> <br> <span style="text-decoration: underline;">Summary</span>: Unless you know for a fact you will immediately<br> have hundreds of players, a low-tier plan will probably<br> suit you to begin with. Just don't lock yourself in to<br> a plan until you've had a chance to determine for yourself<br> what your needs are.<br> <br> <br> </big><big style="font-family: courier new,courier,monospace;"><span style="font-weight: bold; text-decoration: underline;"><a name="143"></a>Who's awesome?</span><br> <br> I'm awesome.<br> </big><big style="font-family: courier new,courier,monospace;"><br> </big><br style="font-family: courier new,courier,monospace;"> <big style="font-family: courier new,courier,monospace;">- Cratylus</big><br style="font-family: courier new,courier,monospace;"> <br style="font-family: courier new,courier,monospace;"> <a style="font-family: courier new,courier,monospace;" href="http://dead-souls.net/">Dead Souls Homepage</a><br style="font-family: courier new,courier,monospace;"> <br style="font-family: monospace;"> </body> </html>