For a lot of your games, you'll often find yourself needing the same code over and over. When Shadowdarke found he was running into the same needs in many projects, he created the sd_procs library. There's a lot of variety in here covering all kinds of common needs, so this one library you absolutely have to have in your arsenal.
Atom actions: The library defines two procs that are highly useful for when atoms move around: Bumped() and Trigger(). The Bumped() proc is like the flip side of Bump(). Whereas the Bump() proc belongs to the moving object, Bumped() belongs to the obstacle. If you have a special wall button that can be toggled by a player bumping into it or a projectile hitting it, you only have to set up a Bumped() proc for the button. The Trigger() proc is called whenever something steps onto a turf--very useful for traps and floor switches.
Base 64: There are other base 64 converters out there, but this one's pretty useful if you want to convert not only to and from regular text, but to and from hexadecimal numbers.
Color: The library defines a special datum called sd_color that can keep track of colors not only individually by red, green, and blue components (sorry, no alpha), but also by the color's HTML code and a solid icon of that color. Several procs for the datum can give you useful information as well, and you can get a color's brightness.
Direction procs: The procs in this part of the library are real workhorses you'll want somewhere for sure. The most useful bit is that you can find an approximate direction between two atoms, so if another atom is far to the north of you but just a little bit to the east, sd_get_approx_dir() will tell you the other atom is NORTH while get_dir() would only tell you NORTHEAST. Other functions include converting a direction to and from angular degrees, radians, or a radial value of 0 to 7.
HSL procs: This is for converting colors to and from RGB format to one that uses hues, but you might not find it the most useful part of the library. The hue range is 0 to 240, so converting from RGB to HSL and back you may see a subtle difference.
Math procs: Only a few math procs are included here, but they're good ones. You can convert numbers from decimal to any base from 2 to 36, and back. Also there's sd_get_dist() and sd_get_dist_squared(), which give real, accurate distances between two atoms--even on different Z levels.
Nybble color procs: You can use this to work with a smaller range of colors from 0 to 15, which you could use for instance to pack information about several colors into a single number. This is also useful in that if you change a color to nybble form and back to RGB, you'll know which color it's closest to.
Text procs: A handful of very useful text manipulation procs are in this section. sd_findlast() and sd_findLast() work like findtext() and findText(), but they start at the end and work backwards. sd_html_remove() filters out unwanted HTML. sd_replacetext() and sd_replaceText() can replace your search text with something else.
The library includes a test program and a list of sample sd_color datums that you can use, though neither of them are included in your projects.
A lot of useful stuff is packed in here--too much to go into every proc in depth. These procs can come in handy in just about any kind of game, and even in chat programs and MUDs. If you're a beginner, they'll save you all kinds of time and may even give you some ideas to do things you hadn't thought of before. For more advanced users, this is a nice one-click way to get a lot of basic functionality into any new project before writing even a single line of code.