This is the Frequently Asked Questions (FAQ) document for the Rom mud codebase. It was written in an attempt to provide a reference that supplied answers to the questions that kept appearing on the Rom mailing list. The author and current maintainer is Garry Turkington, but many people have made valuable contributions to the FAQ as it has evolved. Comments and suggestions for the FAQ are always welcome.

I updated this page with the links because 1994 websites, even though I programmed them back in the day... well the logic slayed me a little lol - DSL/Skol/Ziv - Ansy.

CONTENTS

Rom

Section 0 - ADMINISTRIVIA

Credits, contact information, and general miscellany.

0.1 Disclaimer
0.2 Revision History
0.3 Obtaining this document
0.4 Suggestions/comment/contact information
0.5 Credits

Section 1 - THE BASICS

Introduction to Rom, who wrote it, where to get it, licence information etc.

1.1 What is ROM?
1.2 What do I need to run it?
1.3 Where can I get ROM?
1.4 Is ROM free?
1.4.1 I've made all these changes.. do I still have to call my mud a Rom derivitive?
1.4.2 So I've done all this work for nothing?
1.5 What is the latest version of ROM? Future versions?

Section 2 - GETTING STARTED

How to get your mud on its feet, compilation issues for various platforms, problems often experienced by the new mud administrator etc.

2.1 OK.. I've got this big .tar.gz file.now what?
2.2 What is the purpose of each directory?
2.3 How do I compile the code?
2.3.1 Linux Considerations (including RedHat 5.x)
2.3.2 Solaris considerations
2.3.3 Windows 95/NT considerations
2.3.4 Digital Unix considerations
2.3.5 FreeBSD considerations
2.4 How do I start the mud?
2.5 Why use the startup script? What does it do?
2.6 How do I make an immortal char?
2.7 Now what?
2.8 The importance of backups

Section 3 - EXPANDING THE MUD WITH PUBLIC CODE

What is available, explanations of common snippets, how to add snipets and areas, issues to be aware of.

3.1 Is there code patches/areas available publically I can get?
3.2 Should I use these or write my own?
3.3 What is an OLC? Do I need one?
3.4 I hate monochrome..can I get a colour patch?
3.5 What are mobprogs? Can I get them for ROM?
3.6 What other code snippets/patches are there?
3.7 What about areas?
3.8 How do I patch code into my mud?

Section 4 - USING GCC

Introduction to GCC, common compilation errors, ways to customise how you use GCC and more.

4.1 What is GCC?
4.2 What can I do with the Makefile?
4.3 What are the steps of the compilatioN process?
4.4 My code won't compile..why?
4.4.1 'parse error'
4.4.2 'assignment makes pointer from integer without a cast'
4.4.3 'implicit definition of function'
4.4.4 'declared here not in a function'
4.5 But why can't I just ignore warnings?
4.6 What options may I want to add to the Makefile?
4.7 Why do I get a signal 11 error during compilation?

Section 5 - TROUBLESHOOTING CRASHES

When the mud breaks. Common log error messages and their causes, introduction to GDB, how to use GDB, some tips and tricks.

5.1 My mud crashed..why? What do I do?
5.2 Looking at logfiles.
5.3 Common log file messages
5.3.1 'File * line * : MAX_STRING exceeded'
5.3.2 'Loading '
5.3.3 'Fread_* : bad format'
5.3.4 '* : No such *index'
5.3.5 'Init socket: bind: Address already in use'
5.3.6 'ER <mob> <object>
5.3.7 'Vnum x duplicated'
5.4 What is GDB?
5.5 Do I need GDB?
5.6 Can I use GDB on a corefile? How?
5.7 Can I attach GDB to a running mud?
5.8 How do I start the mud from GDB?
5.9 What are breakpoints? How do I use them?
5.10 OK..the mud crashed and I've lots of info..now what?
5.11 Examining the stack
5.12 Examining variables

Section 6 - OTHER UTILITIES

Grep, Perl, use of profiling and more.

6.1 What is grep? Is it useful?
6.2 What about Perl?
6.3 What is profiling?
6.4 How do I profile my mud?
6.5 What do I do with the profile information?

Section 7 - COMMON CODING QUERIES

How certain aspects of the code work, how to make the most common changes, fixes for common problems and more.

7.1 How do I change the levels on my mud?
7.2 How do I add a new class?
7.3 How do I add a new race?
7.4 How do I add a new clan?
7.5 How do I add a new skill?
7.6 How does the command table work? How dO i add a new command?
7.7 Why does the mud crash when I type 'who jkjkljl'?
7.8 My players are levelling from 1 to hero after one kill..what's going on?
7.9 Why do my mobprogs suddenly stop working?
7.10 How can I add more flags past 'ee'?
7.11 Why don't objects reset to the room?
7.12 How do I increase my range of possible vnums?
7.13 Why can't I see much when switched into a mob?
7.14 How do I add additional colours?
7.15 What areas can or can't I remove?
7.16 How do I add a new wear location?
7.17 Why do act and plr bits seem to be set in the same place?
7.18 What does the number_bits function do?
7.19 How do I add new data fields to my players without having to wipe all pfiles?
7.20 How does nanny and the connected states work?

Section 8 - OTHER RESOURCES

Mailing lists, books, FTP and web references.

8.1 The ROM mailing list
8.2 The Merc-l mailing list
8.3 Usenet newsgroups
8.4 C Programming Resources
8.4.1 How do I learn the C programming language?
8.4.2 Which C book should I buy?
8.4.3 The C FAQ
8.4.4 The books or FAQ didn't have the answer..where now?
8.5 WWW/FTP sites