Compact View | Expanded View
Home
Foreword
Preface
Chapter 1. Meet the Dream Maker

Chapter 2. Navigating the Code Tree
1. Formatting Code
2. Compilation Errors
3. Paths in the Tree
4. Code Comments

Chapter 3. Objects in the Tree
1. Object Properties
1.1. Location
1.2. Additional Mob Properties
2. Assigning Variables
2.1.Constant Values
2.1.1. Numbers
2.1.2. Text
2.1.3. Resource Files
2.2. Constant Macros
3. Putting It All Together

Chapter 4. Verbs
1. Defining a Verb
2. Setting Verb Properties
3. Verb Accessibility
3.1. Explicit versus Implicit Source
3.2. Default Accessibility
3.3. Possible Access Settings
4. Overriding Verbs
5. Friendly Arguments
5.1. Parameter Input Types
6. Generating Output
6.1. Variables in Text
7. Flexibility in Choice of the Source
8. A Choice of Arguments
9. Default Arguments
10. anything input type

Chapter 5. Variables
1. Global Variables
2. Object Variables
2.1. Defining An Object Variable
2.2. Accessing An Object Variable
2.2.1. Declaring Variable Types
2.3. The usr and src Variables
3. Procedure Variables
4. The Life of a Variable
5. Constants
6. Memory and Variables

Chapter 6. Procs
1. Creating a Proc
2. Executing a Proc
3. Proc Inheritance
4. Flexibility of Arguments
5. Global Procs
5.1. Defining A Global Proc
5.2. Calling A Global Proc
6. The Procedure Language
6.1. Statements
7. Return Values
7.1. The return statement
7.2. The . (dot) variable
8. The if statement
8.1. The else clause
9. Boolean Expressions
9.1. Boolean Operators
9.1.1. ! the logical NOT operator
9.1.2. && the logical AND
9.1.3. || the logical OR
9.1.4. == the equality test
9.1.5. != and <> inequality tests
9.1.6. Relative comparison operators
9.1.7. Combining boolean operators
10. Mathematical Operators
10.1. Arithmetical Operators
10.2. ** the power operator
10.3. % the modulus operator
10.4. Increment and Decrement
10.5. Order of Mathematical Operations
11. Bitwise Operations
11.1. ~ the bitwise NOT
11.2. & the bitwise AND
11.3. | the bitwise OR
11.4. ^ the bitwise XOR
11.5. Bit Shifting
11.6. Order of Bitwise Operations
12. Assignment Operators
12.1. Combining Other Operations with Assignment
13. ? the Conditional Operator
14. Dereference Operators
14.1. . the "strict" dereference
14.2. : the "lax" dereference
15. Path Operators
15.1. / the parent-child separator
15.2. . the look-up path operator
15.3. : the look-down path operator
16. Order of All Operations
17. Loop Statements
17.1. for list loop
17.2. for conditional loop
17.3. while loop
17.4. do while loop
18. Jumping Around
18.1. break and continue statements
18.2. goto statement
18.3. Block Labels
19. switch statement

Chapter 7. Predefined Object Procs
1. Movement Procs
1.1. Enter
1.2. Exit
1.3. Bump
1.4. Move
2. Object Creation and Destruction
2.1. New proc
2.2. Del proc
2.3. Areas and Rooms
3. Stat proc
4. Click and DblClick
5. Login and Logout
6. Topic

Chapter 8. The world Data Object
1. world variables
2. world procs
2.1. New and Del
2.2. Repop proc
2.3. Reboot proc
2.4. Inter-world Communication
2.4.1. Topic proc
2.4.2. Export proc
2.4.3. Import proc

Chapter 9. The Client Data Object
1. Client Variables
2. Client Procs
2.1. Direction Procs
2.2. Click proc
2.3. Stat proc
2.4. Topic proc
2.5. Import and Export procs
2.6. New and Del procs

Chapter 10. Lists
1. Declaring a List
2. Accessing List Items
3. len variable
4. List Procs and Operators
4.1. + and += operators
4.2. - and -= operators
4.3. Add and Remove procs
4.4. Find proc
4.4.1. in operator
4.5. Copy proc
4.6. Cut proc
5. Creating Lists
5.1. list instruction
5.2. newlist instruction
5.3. typesof instruction
6. Pre-Defined Lists
6.1. contents list
6.1.1. Area Contents
6.2. verb lists
6.3. args list
7. Multi-Dimensional Lists
7.1. Declaring the List
7.2. Using the List
8. Associative Lists
8.1. Looping
8.2. Specifics
9. Parameter Lists
9.1. world.params
9.2. params2list
9.3. list2params

Chapter 11. User Input/Output
1. Input
1.1. Verbs
1.2. input instruction
2. Output
2.1. text output
2.2. browse output
2.3. sound output
2.4. image output
2.5. ftp output
2.6. run file output
2.7. file output
2.8. link output
3. Text Macros
3.1. Expression Modifiers
3.1.1. Proper Nouns
3.1.2. Numerical Expressions
3.2. Special Characters
3.2.1. Newlines
4. Text Formatting Tags
4.1. Whitespace
4.2. Fonts
4.2.1. FACE attribute
4.2.2. SIZE attribute
4.2.3. COLOR attribute
4.3. Hyperlinks
5. Style Sheets
5.1. Context Selectors
5.2. Style Attributes
5.3. Fonts
5.4. Hyperlink Pseudo-Classes
5.5. Canvas Background Color
5.6. Style Rule Precedence
5.7. The STYLE attribute
6. Inline Icons
7. Special Effects
7.1. missile instruction
7.2. flick instruction

Chapter 12. Savefiles
1. The savefile Object
2. Saving Players
2.1. tmp Variables
2.2. Overriding Write and Read
3. The Structure of a Save File
3.1. cd variable
3.2. dir variable
4. Data Buffers
4.1. File Input/Output
4.2. Stored Variables
4.3. Data Directories
4.4. Saving Objects
4.4.1. Saving a Player Instance
5. The Key Save File
5.1. Client-Side Saving
6. Transmission Between Worlds
6.1. Export, Import, and Topic
6.2. A Sample Player Transferal System
6.3. Security
6.4. Sharing Object Types
7. Advanced Savefile Mechanics
7.1. Duplicate References

Chapter 13. Realtime Events
1. sleep instruction
2. spawn statement
3. Timing Specifics
3.1. Threads of Execution
3.2. Clock Ticks
3.3. Sequencing Actions
3.4. The Sleepless Server

Chapter 14. The Map
1. Spatial Instructions
1.1. view list
1.2. oview list
1.2.1. Point of View
1.3. range and orange instructions
1.4. locate instruction
1.5. block instruction
1.6. get_dist instruction
2. Movement
2.1. walk instruction
2.1.1. get_dir instruction
2.1.2. turn instruction
2.2. walk_towards
2.3. walk_to instruction
2.4. walk_away instruction
2.5. walk_rand instruction
3. Programming for Map Design
3.1. Variable Input Parameters

Chapter 15. Text Manipulation
1. findtext
2. copytext
3. addtext
4. lentext
5. Text Conversions
5.1. uppertext
5.2. lowertext
5.3. text2num
5.4. num2text
6. Comparing Text Strings
6.1. cmptext
6.2. sorttext
7. Text Documents

Chapter 16. Mathematics
1. Randomness
1.1. rand
1.2. prob
1.3. roll
1.4. pick
2. abs
3. min
4. max
5. round
6. sqrt

Chapter 17. Server and System Control
1. A Note on Platform Independence
2. shell
3. File Operations
4. file2text
5. text2file
6. file
7. fcopy
8. fdel
9. flist
10. Running other Worlds
10.1. startup
10.2. Control over Child Worlds
10.3. shutdown

Chapter 18. User-Defined Data Objects
1. Defining a Datum
2. Object Variables
3. Object Procedures
4. Creation of Data Objects

Chapter 19. Managing Code in Large Projects
1. Including Files
2. The Preprocessor
2.1. #define
2.2. Special Macros
2.2.1. FILE_DIR
2.2.2. DEBUG
2.2.3. __FILE__
2.2.4. __LINE__
2.2.5. DM_VERSION
2.3. #undef
2.4. Conditional Compilation
2.4.1. #ifdef
2.4.2. #if
2.5. #error
3. Some Code Management Issues
3.1. Ordering Code
3.2. Debugging Code
3.2.1. Good Coding Habits
3.2.2. Elusive Bugs
Appendix 1. DM Compared to Other Languages
Appendix 2. Pre-Defined Object Tree
Appendix 3. Supported HTML Tags
Appendix 4. DM Script
Appendix 5. Addendum for BYOND 3.0
Glossary