Merc Release 2.2 Wednesday 24 November 1993 Kahn Hatchet === Security Features The 'log' command logs any character; it's meant for test characters as well as trouble-making players. Many immortal commands are logged automatically; this is done by setting the LOG_ALWAYS attribute in interp.c. LOG_NEVER is also available for commands which are never logged (specifically 'password'). 'Log all' logs ALL commands executed by the server. The 'deny' command can be used to set a character's PLR_DENY bit. This bit cannot be reset from within the server (and the player can't log on anyways to get it reset). In order to un-deny a player, edit their save file, and subtract the value of PLR_DENY (1048576) from their 'AffectedBy' bits. You can also 'deny' a player off-line by editing his or her player file and adding in the PLR_DENY bit (1048576) to their 'AffectedBy' bits. The 'ban' command can be used to ban sites or domains. The 'startup' script automatically saves log files in the the directory ../log (i.e. a 'log' directory which is a sibling of the current directory). You should check your log files from time to time. The 'snoop' command can be used multiple times to snoop multiple characters at once. Immortals with 'invis' set can freely goto rooms, walk around, and follow characters without being noticed. The server is protected against input spamming. === Game Balance Features There are level limits on grouping. Objects have level restrictions on their use. There are limits on saved items. Keys and potions do not save. Items which are higher level than the character are not saved. This protects against storage characters. If you do need to confiscate equipment, just fire up your favorite editor and edit the player files. Many commands, such as 'backstab', 'pick lock', and 'steal', have wait states and level limits on them. This protects against low-level thieves plundering the game. There are very few ways to leave combat. Breaking link will invoke attempts to auto-recall, but with a low chance of success. 'Summon' may not be used on a character in combat. 'Recall' has less chance of succeeding than fleeing. In summary, the best way out of combat is fleeing. Offensive spells start combat -- no free attempts at 'sleep', 'dispel magic', or other such spells. Offensive spells may not be cast on other players. Players no longer gain experience from pkilling. The 'summon' spell will not summon a character into a different area. The 'tell' command will not 'tell' to mobiles which are not in the room. The 'tick' interval, as well as other game intervals such as the zone reset interval, have random variation. Aggressive mobiles check for aggression on every game pulse. Thus it is not possible to 'run past' aggressive mobiles. It is not possible to leave the game without an auto-save being done (e.g. by breaking link). The game auto-saves players on death, and it auto-saves players periodically (one player each tick). The 'R' reset command may be used to scramble room exits on area reset, so that players have to map a maze each time they enter. Players may loot only their own corpses or their own groups' corpses. Other corpse looting is punished with a PLR_THIEF flag. === Integrity Features Merc compiles with no errors and no warnings, with 'gcc -Wall', on a large number of platforms. If the server crashes, and you've changed the code at all, it's likely to be YOUR code that's the problem. The server detects and reports most area-file errors that crash other muds, often including the area file name and line number. The server refuses to run with bad files. Thus if you import areas, and they're dirty, you'll have to clean them before you can use them. If you are running on a computer that supports the 'malloc_debug' library function, such as a Sun 4, you can turn on malloc debugging in comm.c. Merc is parsimonious of dynamically allocated memory, so that after area loading, very little memory allocation is done. Thus you can 'malloc_debug' without noticeable effect on performance.